class Piece
include DataMapper::Resource

property :id, Integer, :serial => true
property :name, String
property :size, String
property :medium, String
property :price, Integer
property :sold, Boolean
property :category, String

property :created_at, DateTime
property :updated_at, DateTime

validates_present :name

before :save, :update_times

def update_times
created_at ||= DateTime.now
updated_at = DateTime.now
end

end

## merb -i

>> p = Piece.new
=> #<Piece sold=nil category=nil created_at=nil name=nil updated_at=nil medium=nil price=nil size=nil id=nil>
>> p.name = "Foobar"
=> "Foobar"
>> p.valid?
=> true
>> p.save
NoMethodError: super: no superclass method `save'
from /opt/local/lib/ruby/gems/1.8/gems/dm-validations-0.9.1/lib/dm-validations.rb:35:in `save'
from /opt/local/lib/ruby/gems/1.8/gems/dm-core-0.9.1/lib/data_mapper/hook.rb:112:in `call'
from /opt/local/lib/ruby/gems/1.8/gems/dm-core-0.9.1/lib/data_mapper/hook.rb:112:in `save'
from /opt/local/lib/ruby/gems/1.8/gems/dm-core-0.9.1/lib/data_mapper/hook.rb:108:in `catch'
from /opt/local/lib/ruby/gems/1.8/gems/dm-core-0.9.1/lib/data_mapper/hook.rb:108:in `save'
from (irb):9