h2. 1.1.4 * representable_attrs is now cloned when a representer module is included in an inheriting representer. h2. 1.1.3 * Introduced `#compile_fragment` and friends to make it simpler overriding parsing and rendering steps. h2. 1.1.2 * Allow `Module.hash` to be called without arguments as this seems to be required in Padrino. h2. 1.1.1 * When a representer module is extended we no longer set the @representable_attrs ivar directly but use a setter. This makes it work with mongoid and fixes https://github.com/apotonick/roar/issues/10. h2. 1.1.0 * Added `JSON::Collection` to have plain list representations. And `JSON::Hash` for hashes. * Added the `hash` class method to XML and JSON to represent hashes. * Defining `:extend` only on a property now works for rendering. If you try parsing without a `:class` there'll be an exception, though. h2. 1.0.1 * Allow passing a list of modules to :extend, like @:extend => [Ingredient, IngredientRepresenter]@. h2. 1.0.0 * 1.0.0 release! Party time! h2. 0.13.1 * Removed property :@name from @XML@ in favor of @:attribute => true@. h2. 0.13.0 * We no longer create accessors in @Representable.property@ - you have to do this yourself using @attr_accessors@. h2. 0.12.0 * @:as@ is now @:class@. h2. 0.11.0 * Representer modules can now be injected into objects using @#extend@. * The @:extend@ option allows setting a representer module for a typed property. This will extend the contained object at runtime roughly following the DCI pattern. * Renamed @#representable_property@ and @#representable_collection@ to @#property@ and @#collection@ as we don't have to fear namespace collisions in modules. h2. 0.10.3 * Added @representable_property :default => ...@ option which is considered for both serialization and deserialization. The default is applied when the value is @nil@. Note that an empty string ain't @nil@. * @representable_attrs@ are now pushed to instance level as soon as possible. h2. 0.10.2 * Added @representable_property :accessors => false@ option to suppress adding accessors. * @Representable.representation_wrap@ is no longer inherited. * Representers can now be defined in modules. They inherit to including modules. h2. 0.10.1 * The block in @to_*@ and @from_*@ now yields the symbolized property name. If you need the binding/definition you gotta get it yourself. * Runs with Ruby 1.8 and 1.9. h2. 0.10.0 * Wrapping can now be set through @Representable.representation_wrap=@. Possible values are: * @false@: No wrapping. In XML context, this is undefined behaviour. Default in JSON. * @String@: Wrap with provided string. * @true@: compute wrapper from class name. h2. 0.9.3 * Removed the @:as => [..]@ syntax in favor of @:array => true@. h2. 0.9.2 * Arguments and block now successfully forwarded in @#from_*@. h2. 0.9.1 * Extracted common serialization into @Representable#create_representation_with@ and deserialization into @#update_properties_from@. * Both serialization and deserialization now accept a block to make them skip elements while iterating the property definitions. h2. 0.9.0 h3. Changes * Removed the :tag option in favor of :from. The Definition#from method is now authorative for all name mappings. * Removed the active_support and i18n dependency.