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.


0.1.9 / 2008-08-13

  • Features:

    • to_hash

    • doodle do … end blocks now support #has, #from, #must and

    • will now initialize a setter from a block by calling if
      kind is specified and kind is a Doodle or a Proc, e.g.

      class Animal
      has :species

      class Barn
      has :animals, :collect => Animal

      class Farm
      has Barn

      farm = Farm do

      this is new - will call

      barn do
      animal ‘chicken’
      animal ‘pig’

      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
    • fixed bug where required attributes defined after attributes with
      default values were not being validated (had ‘break’ instead of