- [BREAKING CHANGE] Attribute.primitive? has been removed (solnic)
- [general] Default value logic has been extracted into Attribute::DefaultValue class (solnic)
- [BREAKING CHANGE] Moved Virtus.determine_type to a shared module Virtus::TypeLookup (dkubb)
- [BREAKING CHANGE] Attribute#typecast_to_primitive has been replaced by Attribute#coerce (solnic)
- [BREAKING CHANGE] Attribute#typecast logic was moved to Attribute#set which is now a public method (solnic)
- [feature] Added support for default values (solnic)
- [general] Added custom inspect for Attribute classes (solnic)
- [general] Added backports as a development dependency (dkubb)
- [changed] Options API has been extracted from Attribute to a support module Virtus::Options (solnic)
- [changed] Typecast classes have been replace by a new hierarchy of Coercion classes like Coercion::String, Coercion::Integer etc. (solnic)
- [changed] Attribute#get, #get!, #set, #set! & #coerce are now part of the public API (solnic)
- [bugfix] Fixed DescendantsTracker + ActiveSupport collision (dkubb)
- [BREAKING CHANGE] attributes hash has been replaced by a specialized class AttributeSet (dkubb)
- [BREAKING CHANGE] Virtus::ClassMethods.attribute returns self instead of a created attribute (solnic)
- [changed] descendants tracking has been extracted into DescendantsTracker module (dkubb)
- [changed] Instance #primitive? method has been replaced by class utility method Virtus::Attribute.primitive? (solnic)
- [changed] Virtus::Attribute::String#typecast_to_primitive delegates to Virtus::Typecast::String.call (solnic)
- [BREAKING CHANGE] Attribute classes were moved to Virtus::Attribute namespace (solnic)
- [BREAKING CHANGE] Attribute instance no longer holds the reference to a model (solnic)
- [BREAKING CHANGE] #typecast no longer receives an instance of a model (override #set which calls #typecast if you need that) (solnic)
- [changed] Adding reader/writer methods was moved from the attribute constructor to Virtus::ClassMethods.attribute (solnic)
- [changed] Typecast logic has been moved into separate classes (see Virtus::Typecast) (solnic)
- [added] Virtus::Attribute::DateTime#typecast supports objects which implement #to_datetime (solnic)
- [general] Internals have been cleaned up, simplified and properly documented (solnic)
- [bugfix] Fixed #typecast in custom attribute classes (solnic)
First public release :)