Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

PONSO - Type-safe, in-memory Plain Old NSObjects with relationships #60

Merged
merged 35 commits into from

2 participants

@nzhuk
Collaborator

Hi Rentzsch,

I've been playing with generation of non-CoreData data model I call PONSO (Plain Old NSObjects), which basically allows you to generate ObjC data models from Xcode data models. The main difference between existing "plain ObjC objects" templates is that it supports relationships and basic serialization/deserialization. And there's more, see README.txt file.

This is pretty huge set of changes so take your time to see if you're interested in pulling this. Shouldn't break the basic mogenerator and existing templates, though :)

Executive summary of this pull request:

  • Various small fixes in mogenerator source code, including 64-bit safety and deprecation warnings
  • Alphabetic ordering of attributes, relationships and fetch requests for stable code generation
  • Addition of PONSO code generation templates, PONSO support code and a sample project. See "contributed templates/Nikita Zhuk/ponso/README.txt" file for more info.
nzhuk added some commits
@nzhuk nzhuk - "Modernized" Xcode project a bit:
- Updated Xcode project format to "3.2 compatible"
- Set Debug architecture to "Native Architecture of Build Machine"
- Set Release architecture to "Standard 32/64-bit Intel"
- Set compiler to LLVM/Clang
2288475
@nzhuk nzhuk - Fixed a compiler warning 39e563c
@nzhuk nzhuk - Specified explicit source file encoding - we assume it's UTF-8. Thi…
…s fixes a lot of deprecation warnings
34697d0
@nzhuk nzhuk - Fixed deprecation warnings - assume UTf-8 a6556ec
@nzhuk nzhuk - Deprecation warning fixes abaceea
@nzhuk nzhuk - Added parenthesis for logical "!= 0" comparison d0c95f8
@nzhuk nzhuk - Deprecation warning fix
- Removed extra 'GNU_RUNTIME' token
2c5b8e7
@nzhuk nzhuk - Added extra parenthesis for truth comparison e231d33
@nzhuk nzhuk - Make sure that correct encoding is used when defining default start…
… and end delimiters.

- This change also fixes compiler warnings.
6040c2b
@nzhuk nzhuk - Added -Wall flag to enable the most important warnings 028ac58
@nzhuk nzhuk - Replaced CFUUID with NSProcessInfo's globallyUniqueString, - Fixed …
…a memory leak & simplified the code
d2b6ff9
@nzhuk nzhuk - Fixed memory leaks in MiscMerge 4716a9c
@nzhuk nzhuk Added support for the following momc options:
MOMC_NO_WARNINGS, MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS, MOMC_SUPPRESS_INVERSE_TRANSIENT_ERROR

These options can be set as ENV variables and they will be passed to the momc compiler.
96786d4
@nzhuk nzhuk - Fixed a bug which caused out-of-bounds index exception when code wa…
…s compiled as 64-bit
2cc83ab
@nzhuk nzhuk - Fixed a lot of NS(U)Integer issues which caused potential 64-bit in…
…compatibility
a4aa3b9
@nzhuk nzhuk - Removed extra semicolons
- Fixed one 64-bit safety issue
1f3a116
@nzhuk nzhuk - Initial PONSO commit eed19de
@nzhuk nzhuk - Added some Xcode4 user-specific stuff to .gitignore 0762a3e
@nzhuk nzhuk - Include DAG support classes in mogenerator itself 8c6804e
@nzhuk nzhuk - Removed xcuserstate 7515cf3
@nzhuk nzhuk - Ignore Xcode4 user-specific files 7104d99
@nzhuk nzhuk - Added the source for PONSO support classes 7d458b1
@nzhuk nzhuk - Return all properties in arrays sorted by property name.
- This guarantees stable ordering on subsequent mogenerator runs.
6145072
@nzhuk nzhuk - Moved generate.sh script 43579a2
@nzhuk nzhuk - Regenerated source files with mogenerator which maintains order 7f666c0
@nzhuk nzhuk - Fixed ponso's generate.sh script path feb6ce5
@nzhuk nzhuk - Removed old sources 1b5673c
@nzhuk nzhuk - New sample data model 2f85dc5
@nzhuk nzhuk - Ignore Xcode4 debugger metadata da7b182
@nzhuk nzhuk - Added a comment db71df4
@nzhuk nzhuk - Added compiled binary of mogenerator for convenience ca39de1
@nzhuk nzhuk - Added README about PONSO idea 7b22234
@nzhuk nzhuk - Added some details f2687bd
@nzhuk nzhuk - Removed userdata 1c8739b
@nzhuk nzhuk - Tweaked .gitignore file 63ed418
@rentzsch
Owner

Wow, lots of great work here. Thanks for digging into the old MiscMerge code and modernizing it. Also love the attribute sorting -- I've been wanting to do that myself. PONSO looks fantastic. My only gripe is that I don't think the mogenerator binary should be in version control. Tell you what, I'll accept the entire pull request and delete the binary (unless you can convince me I should leave it in?).

@rentzsch rentzsch merged commit b759975 into from
@nzhuk
Collaborator

Oh, sure. That was my fault, was easier during sample project dev but should've removed that before pushing ;)

@nzhuk
Collaborator

Test comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Jun 4, 2011
  1. @nzhuk

    - "Modernized" Xcode project a bit:

    nzhuk authored
    - Updated Xcode project format to "3.2 compatible"
    - Set Debug architecture to "Native Architecture of Build Machine"
    - Set Release architecture to "Standard 32/64-bit Intel"
    - Set compiler to LLVM/Clang
  2. @nzhuk

    - Fixed a compiler warning

    nzhuk authored
  3. @nzhuk

    - Specified explicit source file encoding - we assume it's UTF-8. Thi…

    nzhuk authored
    …s fixes a lot of deprecation warnings
  4. @nzhuk
  5. @nzhuk

    - Deprecation warning fixes

    nzhuk authored
  6. @nzhuk
  7. @nzhuk

    - Deprecation warning fix

    nzhuk authored
    - Removed extra 'GNU_RUNTIME' token
  8. @nzhuk
  9. @nzhuk

    - Make sure that correct encoding is used when defining default start…

    nzhuk authored
    … and end delimiters.
    
    - This change also fixes compiler warnings.
  10. @nzhuk
  11. @nzhuk

    - Replaced CFUUID with NSProcessInfo's globallyUniqueString, - Fixed …

    nzhuk authored
    …a memory leak & simplified the code
  12. @nzhuk
  13. @nzhuk

    Added support for the following momc options:

    nzhuk authored
    MOMC_NO_WARNINGS, MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS, MOMC_SUPPRESS_INVERSE_TRANSIENT_ERROR
    
    These options can be set as ENV variables and they will be passed to the momc compiler.
  14. @nzhuk
  15. @nzhuk
  16. @nzhuk

    - Removed extra semicolons

    nzhuk authored
    - Fixed one 64-bit safety issue
  17. @nzhuk

    - Initial PONSO commit

    nzhuk authored
  18. @nzhuk
  19. @nzhuk
  20. @nzhuk

    - Removed xcuserstate

    nzhuk authored
  21. @nzhuk
  22. @nzhuk
  23. @nzhuk

    - Return all properties in arrays sorted by property name.

    nzhuk authored
    - This guarantees stable ordering on subsequent mogenerator runs.
  24. @nzhuk

    - Moved generate.sh script

    nzhuk authored
  25. @nzhuk
  26. @nzhuk
  27. @nzhuk

    - Removed old sources

    nzhuk authored
  28. @nzhuk

    - New sample data model

    nzhuk authored
  29. @nzhuk
  30. @nzhuk

    - Added a comment

    nzhuk authored
  31. @nzhuk
  32. @nzhuk

    - Added README about PONSO idea

    nzhuk authored
  33. @nzhuk

    - Added some details

    nzhuk authored
  34. @nzhuk

    - Removed userdata

    nzhuk authored
  35. @nzhuk

    - Tweaked .gitignore file

    nzhuk authored
Something went wrong with that request. Please try again.