From: Sean O'Halpin Date: 2008-12-16T00:27:31+09:00 Subject: [ANN] doodle 0.1.9 Released doodle version 0.1.9 has been released. * Doodle is a gem for simplifying the definition of Ruby classes by making attributes and their properties more declarative. Doodle is eco-friendly: it does not globally modify Object, Class or Module. Changes: ## 0.1.9 / 2008-08-13 - Features: - to_hash - doodle do .. end blocks now support #has, #from, #must and #arg_order - will now initialize a setter from a block by calling kind.new if kind is specified and kind is a Doodle or a Proc, e.g. class Animal has :species end class Barn has :animals, :collect => Animal end class Farm has Barn end farm = Farm do # this is new - will call Barn.new(&block) barn do animal 'chicken' animal 'pig' end end Will not try this for an attribute with :abstract => true - attributes now have :doc option - attributes now have :abstract option - will not try to auto-instantiate an object from this class - attributes now have a :readonly attribute - will not allow setting outside initialization - Doodle::Utils - deep_copy(obj) - normalize_keys!(hash, recursive = false, method = :to_sym), optionally recurse into child hashes - symbolize_keys!(hash, recursive = false) - stringify_keys!(hash, recursive = false) - Experimental: - Doodle::App for handlng command line application options - doodle/datatypes - added more datatypes - Bug fixes: - fixed reversion in 0.1.8 which enabled full backtrace from within doodle.rb - fixed bug where required attributes defined after attributes with default values were not being validated (had 'break' instead of 'next') *