Skip to content
This repository

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

Merged
merged 35 commits into from almost 3 years ago

2 participants

Nikita Zhuk Jonathan 'Wolf' Rentzsch
Nikita Zhuk
Collaborator
nzhuk commented June 04, 2011

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

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

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

Showing 35 unique commits by 1 author.

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

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