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
endclass Barn
has :animals, :collect => Animal
endclass Farm
has Barn
endfarm = Farm do
this is new - will call Barn.new(&block)
barn do
animal ‘chicken’
animal ‘pig’
end
endWill 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’)
- fixed reversion in 0.1.8 which enabled full backtrace from within