lib/dao/validations.rb in dao-4.2.1 vs lib/dao/validations.rb in dao-4.4.2

- old
+ new

@@ -1,25 +1,38 @@ +# -*- encoding : utf-8 -*- module Dao module Validations - class Error < Dao::Error; end + class Error < Dao::Error + attr_accessor :errors - Dao.load('validations/validator.rb') + def initialize(*args, &block) + @errors = args.shift if args.first.respond_to?(:full_messages) + super(*args, &block) + end + + def object + @errors.object if(@errors and @errors.respond_to?(:object)) + end + end + Dao.load('validations/callback.rb') Dao.load('validations/common.rb') + Dao.load('validations/validator.rb') ClassMethods = proc do def validator - @validator ||= Validator.new(self) + @validator ||= Validator.mixin(self) end def validator=(validator) @validator = validator end %w( validations validates + validates_each ).each do |method| module_eval <<-__, __FILE__, __LINE__ def self.#{ method }(*args, &block) validator.#{ method }(*args, &block) end @@ -27,28 +40,30 @@ end end InstanceMethods = proc do def validator - @validator ||= Validator.new(self) + @validator ||= Validator.mixin(self) end def validator=(validator) @validator = validator end %w( validations validates + validates_each validated? validated! validate validate! + run_validations run_validations! valid! - forcing_validity? valid? + forcing_validity? errors status ).each do |method| module_eval <<-__, __FILE__, __LINE__ def #{ method }(*args, &block) @@ -63,7 +78,10 @@ other.send(:class_eval, &InstanceMethods) other.send(:include, Common) other.send(:extend, Common) super end + end + + Dao.load('validations/instance.rb') end