Sha256: 973edea93ccf9e35976232ed3dc6cb7646ff468e12909e33e472117c4b69900c

Contents?: true

Size: 675 Bytes

Versions: 5

Compression:

Stored size: 675 Bytes

Contents

module Validatable
  class ValidationBase
    alias_method :old_init, :initialize
  
    DEFAULT_EVENTS = [:validate, :create, :save, :update]

    def initialize(klass, attribute, options={})
      events = [options.delete(:on)].flatten.compact + [options.delete(:event)].flatten.compact
      raise ArgumentError.new("Events must be one of #{DEFAULT_EVENTS.inspect}") unless (events & DEFAULT_EVENTS).size == events.size
      options[:groups] ||= events unless events.empty? ### <- Danger will robinson
      old_init(klass, attribute, options)
    end
  
    def humanized_attribute
      @humanized_attribute ||= Inflector.humanize(self.attribute.to_s)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
datamapper-0.2.4 lib/data_mapper/validatable_extensions/validation_base.rb
datamapper-0.3.1 lib/data_mapper/validatable_extensions/validation_base.rb
datamapper-0.3.2 lib/data_mapper/validatable_extensions/validation_base.rb
datamapper-0.2.5 lib/data_mapper/validatable_extensions/validation_base.rb
datamapper-0.3.0 lib/data_mapper/validatable_extensions/validation_base.rb