Considering this code:
class Dog
include DataMapper::Resource
property :id, Integer, :serial => true
property :name, String
validates_present :name
before :valid?, :downcase_name
def downcase_name
self.name = self.name.downcase if self.name
end
end
d = Dog.new(:name => "Pluton")
d.save
ArgumentError: wrong number of arguments (1 for 0)
from /opt/local/lib/ruby/gems/1.8/gems/dm-core-0.9.1/lib/data_mapper/hook.rb:109:in `downcase_name'
from /opt/local/lib/ruby/gems/1.8/gems/dm-core-0.9.1/lib/data_mapper/hook.rb:109:in `valid?'
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 `valid?'
from /opt/local/lib/ruby/gems/1.8/gems/dm-validations-0.9.1/lib/dm-validations.rb:34:in `save'
from (irb):16
gem list | grep dm
dm-aggregates (0.9.1)
dm-ar-finders (0.9.1)
dm-cli (0.9.1)
dm-core (0.9.1)
dm-couchdb-adapter (0.9.1)
dm-is-nested_set (0.9.1)
dm-is-tree (0.9.1)
dm-migrations (0.9.1)
dm-more (0.9.1)
dm-serializer (0.9.1)
dm-timestamps (0.9.1)
dm-types (0.9.1)
dm-validations (0.9.1)