Doodle 0.2.3 Released

doodle version 0.2.3 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.2.3 / 2009-03-06

  • Features:
    • collect can now take multiple types, e.g.
      has :shapes, :collect => [Circle, Square]
      or
      has :shapes, :collect => {:circle => Circle, :square => Square}
    • to_json and from_json - see
      http:://doodle.rubyforge.org/doodle-json.html for details
    • can now specify :must and :from directly in #has params hash, e.g.
      has :answer, :from => { String => proc {|c| c.to_i } },
      :must => { “be 42” => proc {|c| c == 42 } }
    • added #assigned? for attributes, e.g.
      if obj.assigned?(:name) # => true if @name exists
    • added key_values:
      class Foo < Doodle
      has :name
      has :count
      end
      Foo.new(‘a’, 1).doodle.key_values # => [[:name, “a”], [:count, 1]]
    • and key_values_without_defaults
    • added :expand => [false|true] to Doodle::App::Filename - expands
      path if set to true. Default = false
    • all specs pass on jruby-1.2.0RC2 and ruby 1.8.7p72
    • plus more docs + specs