Module: ValidatesLengthsFromDatabase::ClassMethods

Defined in:
lib/validates_lengths_from_database.rb

Instance Method Summary collapse

Instance Method Details

#validate_lengths_from_database_optionsObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/validates_lengths_from_database.rb', line 28

def validate_lengths_from_database_options
  if defined? @validate_lengths_from_database_options
    @validate_lengths_from_database_options
  else
    # in case we inherited the validations, copy the options so that we can update it in child
    # without affecting the parent
    @validate_lengths_from_database_options = superclass.validate_lengths_from_database_options.inject({}) do |hash, (key, value)|
      value = value.dup if value.respond_to?(:dup)
      hash.update(key => value)
    end
  end
end

#validates_lengths_from_database(options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/validates_lengths_from_database.rb', line 11

def validates_lengths_from_database(options = {})
  options.symbolize_keys!

  options[:only]    = Array[options[:only]]   if options[:only] && !options[:only].is_a?(Array)
  options[:except]  = Array[options[:except]] if options[:except] && !options[:except].is_a?(Array)
  options[:limit] ||= {}

  if options[:limit] and !options[:limit].is_a?(Hash)
    options[:limit] = {:string => options[:limit], :text => options[:limit], :decimal => options[:limit], :integer => options[:limit], :float => options[:limit]}
  end
  @validate_lengths_from_database_options = options

  validate :validate_lengths_from_database

  nil
end