mogenerator Changelog

What's new in mogenerator 1.30.1

Jun 13, 2016
  • [FIX] Use will/didChange & will/didAccess in generated code when using scalarsWhenNonOptional. (rentzsch)
  • [FIX] Only use @import if supported (which Objective-C++ does not). issue 325 (Samuel Bichsel)
  • [FIX] Add space between property type and name. issue 323 (Daniel Rodríguez Troitiño)

New in mogenerator 1.29 (Aug 20, 2015)

  • [NEW] Use built-in model compiler (momcom) instead of relying on Xcode's momc. (Tom Harrington)
  • [NEW] Documentation generation using User Info keys. (Daniel Tull)
  • [NEW] Multiuser support (use per-user $TMPDIR instead of /tmp). (Annard Brouwer)
  • [NEW] Swift: support for additionalHeaderFileName. (Leonardo Yvens)
  • [CHANGE] Swift: make generated machine classes and their attributes public. (Fritz Anderson)
  • [CHANGE] Swift: make initializers public. (Dave Reed)
  • [CHANGE] Swift: make enums public. (Dave Reed)
  • [CHANGE] Swift: make mogenerator:readonly work for Swift by rendering the attribute as a read-only computed property. (Tom Harrington)
  • [CHANGE] Swift: method signatures for validate methods. issue 281. (Tom Harrington)
  • [FIX] Don't generate -primativeType and -setPrimativeType:. issue 202. (rentzsch)
  • [FIX] Swift: ordered relationships. issue 290. (Oleksii Taran, Tom Burns)
  • [FIX] Swift: model specified fetch requests. (Dave Reed, Tom Harrington)
  • [FIX] Swift: MogenSwiftTest. (Justin Williams, Dave Reed)
  • [FIX] Swift: generation of override method declarations. (Tom Harrington 1, 2)
  • [FIX] Quote paths in test/Rakefile. (Jonah Williams)

New in mogenerator 1.28 (Sep 11, 2014)

  • [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](http://semver.org) for tool arguments.
  • [NEW] Experimental Swift code generation. Unfortunately basic Core Data functionality ([to-one relationships](http://stackoverflow.com/q/24688969/5260)) 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](https://github.com/rentzsch/mogenerator/pull/203), [afrederick1](https://github.com/rentzsch/mogenerator/pull/209), [Piet Brauer](https://github.com/rentzsch/mogenerator/pull/215), [rentzsch](https://github.com/rentzsch/mogenerator/commit/b7c029c43384c6aa0455605e7d253a4ff60e1c10), [Chris Weber](https://github.com/rentzsch/mogenerator/pull/234), [Markus Chmelar](https://github.com/rentzsch/mogenerator/pull/237), [Brent Royal-Gordon](https://github.com/rentzsch/mogenerator/pull/247))
  • [NEW] Ordered relationships actually work. [OMG](https://twitter.com/rentzsch/status/281816512489218048). I have them working in a new separate OS X test app, even though [mogenerator's test dir](https://github.com/rentzsch/mogenerator/tree/master/test) fails. I still haven't figured out why, but I'm not holding this back. ([Daniel Tull](https://github.com/rentzsch/mogenerator/pull/140), [Joshua Greene](https://github.com/rentzsch/mogenerator/commit/a971c391b7f720f30934de439519bd3ecda4d453), [Dave Wood](https://github.com/rentzsch/mogenerator/commit/6a5f27b68c70b3b7688cb02c6a4c957c49baba17), [Jonathan del Strother](https://github.com/rentzsch/mogenerator/pull/231))
  • [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](https://github.com/rentzsch/JREnum)-style enums. ([Quentin ARNAULT](https://github.com/rentzsch/mogenerator/commit/43eff6a69098747d95417ed4f5f7b5e686504473))
  • [NEW] Remove unnecessary empty lines in the generated files. ([Stephan Michels](https://github.com/rentzsch/mogenerator/pull/184))
  • [NEW] Ability to forward-declare `@protocol`s for i.e. transformable types. Specify them via a comma delimited string in the entity's user info under the `attributeTransformableProtocols` key. ([Renaud Tircher](https://github.com/rentzsch/mogenerator/pull/147))
  • [NEW] Generate `*UserInfo` key/value pairs as const structs. ([Jeremy Foo](https://github.com/rentzsch/mogenerator/pull/131), [rentzsch](https://github.com/rentzsch/mogenerator/issues/158))
  • [NEW] `--template-var literals` which, when enabled, generates Obj-C literals. ([Brandon Williams](https://github.com/rentzsch/mogenerator/commit/fc6537d97f187121a38ddfe85c52796c8a3be2d0), [Thomas van der Heijden](https://github.com/rentzsch/mogenerator/commit/8b203a03fc4456b28087c7f3e0dc4d7637a89cdc), [rentzsch](https://github.com/rentzsch/mogenerator/commit/63d2ac2ee30cd59db126302eb5f46fb99fe6d460))
  • [NEW] Specify `--template-var modules=true` option to avoid `treating #import as an import of module 'CoreData' [-Wauto-import]" warning`. ([Daniel Tull](https://github.com/rentzsch/mogenerator/pull/194))
  • [NEW] Unsigned integers are generated when a property's minimum is set to `0` in the Xcode modeler. ([Dan Pourhadi](https://github.com/rentzsch/mogenerator/commit/e70cab5bf1a721831e43cb756778ee8825f1e011))
  • [NEW] Add support for setting command-line options via a JSON config file. ([Simon Whitaker](https://github.com/rentzsch/mogenerator/pull/163))
  • [NEW] Add CONTRIBUTING.md file. It's now even easier to contribute to mogenerator :) ([rentzsch](https://github.com/rentzsch/mogenerator/commit/e8a05a3161be2a25cb072041936196c28dbdda07))
  • [NEW] Add MIT LICENSE file to make it clear templates are under the same license. ([rentzsch](https://github.com/rentzsch/mogenerator/commit/b8b57d1d88d59680c932096eb27d327b7324f56d))
  • [CHANGE] Suppress generation of `-setPrimativeType:` method. [issue 16](https://github.com/rentzsch/mogenerator/issues/16). ([rentzsch](https://github.com/rentzsch/mogenerator/commit/cd9809de0ec266995069c4350feb0bf78ebc6795))
  • [CHANGE] Add a warning when skipping an attribute named 'type'. ([Simon Whitaker](https://github.com/rentzsch/mogenerator/pull/165))
  • [CHANGE] Add explicit `atomic` to sooth `-Weverything`. ([Daniel Tull](https://github.com/rentzsch/mogenerator/pull/153))
  • [CHANGE] iOS 8 changes objectID from a getter into a property, resulting in a warning. Templates updated to match. ([Ryan Johnson](https://github.com/rentzsch/mogenerator/pull/201))
  • [FIX] Support newly-created models when `--model=*.xcdatamodeld`. [issue 137](https://github.com/rentzsch/mogenerator/issues/137). ([Sergey](https://github.com/rentzsch/mogenerator/pull/138))
  • [FIX] Minor warning fix, 64->32 truncation, format strings. ([Sean M](https://github.com/rentzsch/mogenerator/pull/141))
  • [FIX] Machine headers always `#import`s their superentity if present. ([David Aspinall](https://github.com/rentzsch/mogenerator/pull/136))
  • [FIX] Fetch requests whose predicate LHS specifies a relationship. [issue 15](https://github.com/rentzsch/mogenerator/issues/15). ([rentzsch](https://github.com/rentzsch/mogenerator/commit/54ddfa5b39c89a99d4457cb0edd0f817096fcf36))
  • [FIX] Don't emit empty `*UserInfo` structs. (Jeremy Foo [1](https://github.com/rentzsch/mogenerator/commit/8281ff332cd222ccbb84f94c02908c3cd8df0234) [2](https://github.com/rentzsch/mogenerator/commit/4ca4405a28cbb17055dc8d0bfc6bc2fe60c426ed#diff-d41d8cd98f00b204e9800998ecf8427e))
  • [FIX] Don't emit empty `*Attributes`, `*Relationships`, and `*FetchedProperties` structs. ([Daniel Tull](https://github.com/rentzsch/mogenerator/commit/54e8c1015d353977ecd4a9d2bb78b06185c61ee9))
  • [FIX] MOIDs subclass their superentity (instead of just always inheriting from `NSManagedObject`). ([Daniel Tull](https://github.com/rentzsch/mogenerator/commit/5f03745bca72588a0880d0333fa86ac623d8a1f9))
  • [FIX] Don't touch aggregate include files if the content didn't change. ([Stephan Michels](https://github.com/rentzsch/mogenerator/pull/148))
  • [FIX] Don't attempt to `#import "NSManagedObject.h"` even in the face of weird (corrupted?) model files. [issue 42](https://github.com/rentzsch/mogenerator/issues/42). ([rentzsch](https://github.com/rentzsch/mogenerator/commit/3e6074814c4e6655c26469c01adeb3d0aafa9ddb))
  • [TEST] Escape spaces in mogenerator build path. ([Daniel Tull](https://github.com/rentzsch/mogenerator/issues/151))

New in mogenerator 1.27 (Nov 14, 2012)

  • [NEW] You can now pass .xcdatamodeld paths to mogenerator. mogenerator will look inside the directory, read its hidden `.xccurrentversion` file and use the "current" .xcdatamodel file. ([Alexander Zats](https://github.com/rentzsch/mogenerator/pull/102))
  • [NEW] Replaced mogenerator's previous testing system (the test mule) with a new Rakefile-based system that eases building & testing from the current source tree and tests both MRC and ARC. ([rentzsch](https://github.com/rentzsch/mogenerator/blob/master/test/Test README.markdown))
  • [NEW] Property declarations generated from attributes can now be qualified as readonly by adding a `mogenerator.readonly` to an attribute's userinfo. ([crispinb](https://github.com/rentzsch/mogenerator/pull/111))
  • [NEW] `--configuration` option that limits generation to the specified configuration. ([Sixten Otto](https://github.com/rentzsch/mogenerator/pull/104))
  • [CHANGE] Optimized `keyPathsForValuesAffectingValueForKey:` generated code (returns after first match). ([Sean M](https://github.com/rentzsch/mogenerator/issues/98))
  • [CHANGE] Add default private class extension to human source template. ([Jonas Schnelli](https://github.com/rentzsch/mogenerator/pull/95))
  • [FIX] Align generated code's pointer asterisks more consistently. ([Tony Arnold](https://github.com/rentzsch/mogenerator/pull/103))
  • [FIX] Missing import when using mogenerator.customBaseClass entity userinfo key. ([Thomas Guthrie](https://github.com/rentzsch/mogenerator/pull/109))
  • [FIX] Handle case in generated fetch request wrapper machine code when predicate variables are repeated. ([Sergei Winitzki](https://github.com/rentzsch/mogenerator/pull/125))
  • [FIX] Explicitly set mogenerator project's deployment target to 10.6 to avoid segfaulting on 10.8 for some reason. [issue 121](https://github.com/rentzsch/mogenerator/issues/121) (reported by Sixten Otto, diagnosed by Florian Bürger)
  • [FIX] Cast to unsigned in machine source to avoid clang format string warning. ([rentzsch](https://github.com/rentzsch/mogenerator/commit/82dca52d3fa8082163931141b4e8257f8be8191c))
  • [FIX] Don't attempt to report errors through -[NSApp reportError:] in generated machine source unless targeting AppKit. ([rentzsch](https://github.com/rentzsch/mogenerator/commit/0f4d8295e98832f5acdab8d24d3193a1141839a8))
  • [WORKAROUND] Recent versions of Xcode use an empty string to mark entities that do not have a custom subclass. ([Matthias Bauch](https://github.com/rentzsch/mogenerator/pull/132))
  • [CHANGE] make_installer.command: assume PackageMaker now lives in /Applications/Utilities. ([rentzsch](https://github.com/rentzsch/mogenerator/commit/aa4d3d5ba274985bd0a9f636efb0c5c82ce33381))

New in mogenerator 1.26 (Sep 20, 2012)

  • [FIX] Missing space in transformable attribute codegen. issue 89 (Daniel Tull, Kris Markel, Whitney Young)
  • [NEW] mogenerator's standard templates are now bundled into the mogenerator binary itself. This should solve the problem of templates growing out of sync with the intended version of mogenerator (exacerbated by the now-popular homebrew installer). You can still use your own templates with the --template-path and --template-group parameters. issue 79 (Ingvar Nedrebo, rentzsch).
  • [NEW] Support for per-entity custom base classes, set via mogenerator.customBaseClass key in the entity's user info. (Trevor Squires)
  • [CHANGE] mogenerator installer no longer installs separate template files (but it won't touch those already installed).
  • [CHANGE] mogenerator's .pkg installer no longer includes Xmo'd since 1) Xmo'd doesn't work with Xcode 4 yet and 2) Xcode.app now lives in /Applications, so the installer needs to get smarter to cope.