Module: HasValidatedAttributes

Extended by:
ActiveSupport::Concern
Defined in:
lib/version.rb,
lib/has_validated_attributes.rb

Constant Summary collapse

VERSION =
"0.0.3"

Class Method Summary collapse

Class Method Details

.validations(*args) ⇒ Object

instance methods



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/has_validated_attributes.rb', line 7

def self.validations(*args)
  args.first.each do |name, format|
    HasValidatedAttributes.define_singleton_method "#{name}_format" do |field_name = nil, options = {}|
      validation = {}
      validation.merge!(:if => "#{field_name}?".to_sym) if format.delete(:has_if?)
      ### length options ###
      opts = options.select{|k, v| k.match(/length/)}
      opts.each{|k,v| validation.merge!(:length => {k.to_s.split("_").first.to_sym => v});options.delete(k)} if opts.present?
      ### extra options ###
      validation.merge!(options) if options.present?

      format.merge(validation)
    end
  end
end