@rentzsch rentzsch released this Oct 3, 2016 · 4 commits to master since this release



@rentzsch rentzsch released this Apr 7, 2016 · 21 commits to master since this release



@rentzsch rentzsch released this Mar 22, 2016 · 6 commits to release since this release

Thanks to lieutenant Justin Williams for helping with this release.

  • [NEW] Official bundled Swift 2 templates. (Justin Williams 1 2)

  • [NEW] "Modern" Objective-C and Swift is default. Apple has made it exceptionally difficult to target older versions of OS X and iOS, so we've given up. The grand --v2 experiment, which I loved, has been killed (the option will still be accepted to not break existing scripts but is now a no-op). From now on if you need to target an older OS, use an older mogenerator. Sorry. (Justin Williams)

  • [NEW] Generate Objective-C Lightweight Generics. (rentzsch)

  • [NEW] Generate instancetype. (Justin Williams)

  • [NEW] Generate nullability attributes for Objective-C machine templates (NS_ASSUME_NONNULL_BEGIN/nullable). (Justin Williams)

  • [NEW] mogenerator project is now using Travis CI. Travis automatically builds and runs mogenerator's test suite on each commit, reporting the results, making it easier+faster to process Pull Requests. (rentzsch)

  • [NEW] Change of branch philosophy: master used to be the "stable" branch. Now it's the branch we're going to land incoming Pull Requests. Pull Requests will be accepted onto master pretty freely, Travis will help catch breaking changes. I want to reduce latency and friction for folks to help out with mogenerator. Related reading: Drew Crawford's Conduct unbecoming of a hacker. (rentzsch)

  • [NEW] Specifying --template-var scalarsWhenNonOptional=true will have mogenerator generate only scalar properties for non-optional entity scalar attributes. For example, consider an age attribute. Without this option, mogenerator will generate two properties: @property (…) NSNumber *age and @property (…) uint16_t ageValue. With this option, only @property (…) uint16_t age would be generated, simplifying things since the age attribute can never be nil. (Mr Anonymous)

  • [CHANGE] Replace Mike Ash-style constant structures in favor of more ARC-friendly NSObject subclasses. Should be source-compatible with with Mike Ash-style. (Justin Williams)

  • [FIX] You can specify an entity's module in Xcode's Core Data Model editor. However, when specifying the current module, the entity class name is prefixed with a period, resulting in an invalid class name. This period is now suppressed. (Saul Mora)

  • [FIX] momcom: NSPropertyDescription's optional wasn't being set correctly. issue 286 (Matthias Bauch)

  • [FIX] override and explicitly include xcshareddata in .gitignore and add the default shared schemes. This fixes the problem where xcodebuild would fail with an The project 'mogenerator' does not contain a scheme named 'mogenerator' error until you first opened it in Xcode. (rentzsch)

  • [FIX] Generated indentation. (Markus Chmelar 1 2)

  • [FIX] Use DERIVED_FILE_DIR instead of TMPDIR. (Jonathan MacMillan)

  • [CHANGE] Move the constant structures to the end of the machine header file. It's just uninteresting support code. (rentzsch)

  • [MODERNIZE] MiscMerge: switch to Objective-C Modules. (Justin Williams)

  • [MODERNIZE] Use instancetype internally. (Justin Williams)

  • [MODERNIZE] 64-bit only. (Justin Williams)

  • [MODERNIZE] Replace nsenumerate macro with for...in. (Justin Williams)

  • [MODERNIZE] MiscMerge: encode all source files as UTF8. (Justin Williams)

  • [MODERNIZE] Set minimum deployment target to 10.8. (Justin Williams)

  • [MODERNIZE] Replace RegexKitLite with NSRegularExpression. (Justin Williams)

  • [MODERNIZE] Replace arrayWithObjects and dictionaryWithObjectsAndKeys with literals. (Markus Chmelar 1 2)

  • [MODERNIZE] Replace objectAtIndex:0 with firstObject. (Markus Chmelar)

  • [REMOVED] //validate machine comments. They were just guides on writing your own validation methods and aren't worth the code clutter. (Justin Williams)

  • [REMOVED] Xmo'd. It hasn't worked for a very long time and I have no immediate plans on putting in the time to get working again. (Justin Williams)



@rentzsch rentzsch released this Aug 20, 2015 · 106 commits to master since this release

Much thanks to lieutenants Tom Harrington and Justin Williams for handling this release.



@rentzsch rentzsch released this Sep 11, 2014 · 153 commits to master since this release

  • [NEW] --v2 argument. I wanted to enable ARC by default, but decided to take it a step further (while not breaking existing scripts). The new --v2 argument is basically semantic versioning for tool arguments.

    So now instead of this:

    mogenerator --model MyDataModel.xcdatamodeld \
        --template-var arc=true \
        --template-var literals=true \
        --template-var modules=true

    You can write this:

    mogenerator --v2 --model MyDataModel.xcdatamodeld

    Internally these invocations are equivalent, but new scripts and manual invocations should use the --v2 variant.

    I recommend putting the --v2 in front of the rest of the arguments to call attention to the versioned context of the following arguments.

    This mechanism should allow mogenerator to continue to supply sensible defaults into the future as well. Perhaps --v3 will generate Swift by default. Speaking of which…

  • [NEW] Experimental Swift code generation. Unfortunately basic Core Data functionality (to-one relationships) is broken on 10.9, but we can still try writing theoretically-correct Swift code. Perhaps a future version of mogenerator will supply the needed work-around code for you. (Alexsander Akers, afrederick1, Piet Brauer, rentzsch, Chris Weber, Markus Chmelar, Brent Royal-Gordon)

  • [NEW] Ordered relationships actually work. OMG. I have them working in a new separate OS X test app, even though mogenerator's test dir fails. I still haven't figured out why, but I'm not holding this back. (Daniel Tull, Joshua Greene, Dave Wood, Jonathan del Strother)

  • [NEW] Custom scalar types. Specify attributeValueScalarType for the name of the property's custom type and additionalHeaderFileName if you need to bring in an additional header file for compilation. With this, mogenerator supports C-style and JREnum-style enums. (Quentin ARNAULT)

  • [NEW] Remove unnecessary empty lines in the generated files. (Stephan Michels)

  • [NEW] Ability to forward-declare @protocols for i.e. transformable types. Specify them via a comma delimited string in the entity's user info under the attributeTransformableProtocols key. (Renaud Tircher)

  • [NEW] Generate *UserInfo key/value pairs as const structs. (Jeremy Foo, rentzsch)

  • [NEW] --template-var literals which, when enabled, generates Obj-C literals. (Brandon Williams, Thomas van der Heijden, rentzsch)

  • [NEW] Specify --template-var modules=true option to avoid treating #import as an import of module 'CoreData' [-Wauto-import]" warning. (Daniel Tull)

  • [NEW] Unsigned integers are generated when a property's minimum is set to 0 in the Xcode modeler. (Dan Pourhadi)

  • [NEW] Add support for setting command-line options via a JSON config file. (Simon Whitaker)

  • [NEW] Add CONTRIBUTING.md file. It's now even easier to contribute to mogenerator :) (rentzsch)

  • [NEW] Add MIT LICENSE file to make it clear templates are under the same license. (rentzsch)

  • [CHANGE] Suppress generation of -setPrimativeType: method. issue 16. (rentzsch)

  • [CHANGE] Add a warning when skipping an attribute named 'type'. (Simon Whitaker)

  • [CHANGE] Add explicit atomic to sooth -Weverything. (Daniel Tull)

  • [CHANGE] iOS 8 changes objectID from a getter into a property, resulting in a warning. Templates updated to match. (Ryan Johnson)

  • [FIX] Support newly-created models when --model=*.xcdatamodeld. issue 137. (Sergey)

  • [FIX] Minor warning fix, 64->32 truncation, format strings. (Sean M)

  • [FIX] Machine headers always #imports their superentity if present. (David Aspinall)

  • [FIX] Fetch requests whose predicate LHS specifies a relationship. issue 15. (rentzsch)

  • [FIX] Don't emit empty *UserInfo structs. (Jeremy Foo 1 2)

  • [FIX] Don't emit empty *Attributes, *Relationships, and *FetchedProperties structs. (Daniel Tull)

  • [FIX] MOIDs subclass their superentity (instead of just always inheriting from NSManagedObject). (Daniel Tull)

  • [FIX] Don't touch aggregate include files if the content didn't change. (Stephan Michels)

  • [FIX] Don't attempt to #import "NSManagedObject.h" even in the face of weird (corrupted?) model files. issue 42. (rentzsch)

  • [TEST] Escape spaces in mogenerator build path. (Daniel Tull)