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

Nikita Zhuk Jonathan 'Wolf' Rentzsch
Nikita Zhuk
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
Nikita Zhuk 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
Nikita Zhuk nzhuk - Fixed a compiler warning 39e563c
Nikita Zhuk nzhuk - Specified explicit source file encoding - we assume it's UTF-8. Thi…
…s fixes a lot of deprecation warnings
34697d0
Nikita Zhuk nzhuk - Fixed deprecation warnings - assume UTf-8 a6556ec
Nikita Zhuk nzhuk - Deprecation warning fixes abaceea
Nikita Zhuk nzhuk - Added parenthesis for logical "!= 0" comparison d0c95f8
Nikita Zhuk nzhuk - Deprecation warning fix
- Removed extra 'GNU_RUNTIME' token
2c5b8e7
Nikita Zhuk nzhuk - Added extra parenthesis for truth comparison e231d33
Nikita Zhuk nzhuk - Make sure that correct encoding is used when defining default start…
… and end delimiters.

- This change also fixes compiler warnings.
6040c2b
Nikita Zhuk nzhuk - Added -Wall flag to enable the most important warnings 028ac58
Nikita Zhuk nzhuk - Replaced CFUUID with NSProcessInfo's globallyUniqueString, - Fixed …
…a memory leak & simplified the code
d2b6ff9
Nikita Zhuk nzhuk - Fixed memory leaks in MiscMerge 4716a9c
Nikita Zhuk 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
Nikita Zhuk nzhuk - Fixed a bug which caused out-of-bounds index exception when code wa…
…s compiled as 64-bit
2cc83ab
Nikita Zhuk nzhuk - Fixed a lot of NS(U)Integer issues which caused potential 64-bit in…
…compatibility
a4aa3b9
Nikita Zhuk nzhuk - Removed extra semicolons
- Fixed one 64-bit safety issue
1f3a116
Nikita Zhuk nzhuk - Initial PONSO commit eed19de
Nikita Zhuk nzhuk - Added some Xcode4 user-specific stuff to .gitignore 0762a3e
Nikita Zhuk nzhuk - Include DAG support classes in mogenerator itself 8c6804e
Nikita Zhuk nzhuk - Removed xcuserstate 7515cf3
Nikita Zhuk nzhuk - Ignore Xcode4 user-specific files 7104d99
Nikita Zhuk nzhuk - Added the source for PONSO support classes 7d458b1
Nikita Zhuk nzhuk - Return all properties in arrays sorted by property name.
- This guarantees stable ordering on subsequent mogenerator runs.
6145072
Nikita Zhuk nzhuk - Moved generate.sh script 43579a2
Nikita Zhuk nzhuk - Regenerated source files with mogenerator which maintains order 7f666c0
Nikita Zhuk nzhuk - Fixed ponso's generate.sh script path feb6ce5
Nikita Zhuk nzhuk - Removed old sources 1b5673c
Nikita Zhuk nzhuk - New sample data model 2f85dc5
Nikita Zhuk nzhuk - Ignore Xcode4 debugger metadata da7b182
Nikita Zhuk nzhuk - Added a comment db71df4
Nikita Zhuk nzhuk - Added compiled binary of mogenerator for convenience ca39de1
Nikita Zhuk nzhuk - Added README about PONSO idea 7b22234
Nikita Zhuk nzhuk - Added some details f2687bd
Nikita Zhuk nzhuk - Removed userdata 1c8739b
Nikita Zhuk nzhuk - Tweaked .gitignore file 63ed418
Jonathan 'Wolf' 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?).

Jonathan 'Wolf' Rentzsch rentzsch merged commit b759975 into from
Nikita Zhuk
Collaborator

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

Nikita Zhuk
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. Nikita Zhuk

    - "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. Nikita Zhuk

    - Fixed a compiler warning

    nzhuk authored
  3. Nikita Zhuk

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

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

    - Deprecation warning fixes

    nzhuk authored
  6. Nikita Zhuk
  7. Nikita Zhuk

    - Deprecation warning fix

    nzhuk authored
    - Removed extra 'GNU_RUNTIME' token
  8. Nikita Zhuk
  9. Nikita Zhuk

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

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

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

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

    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. Nikita Zhuk
  15. Nikita Zhuk
  16. Nikita Zhuk

    - Removed extra semicolons

    nzhuk authored
    - Fixed one 64-bit safety issue
  17. Nikita Zhuk

    - Initial PONSO commit

    nzhuk authored
  18. Nikita Zhuk
  19. Nikita Zhuk
  20. Nikita Zhuk

    - Removed xcuserstate

    nzhuk authored
  21. Nikita Zhuk
  22. Nikita Zhuk
  23. Nikita Zhuk

    - Return all properties in arrays sorted by property name.

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

    - Moved generate.sh script

    nzhuk authored
  25. Nikita Zhuk
  26. Nikita Zhuk
  27. Nikita Zhuk

    - Removed old sources

    nzhuk authored
  28. Nikita Zhuk

    - New sample data model

    nzhuk authored
  29. Nikita Zhuk
  30. Nikita Zhuk

    - Added a comment

    nzhuk authored
  31. Nikita Zhuk
  32. Nikita Zhuk

    - Added README about PONSO idea

    nzhuk authored
  33. Nikita Zhuk

    - Added some details

    nzhuk authored
  34. Nikita Zhuk

    - Removed userdata

    nzhuk authored
  35. Nikita Zhuk

    - Tweaked .gitignore file

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