Module: StandaloneValidator::NamedValidations::CommonRailsOptions

Included in:
ValidatesNumericalityOf, ValidatesPresenceOf
Defined in:
lib/standalone_validator/named_validations/common_rails_options.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

ALWAYS_TRUE =
Proc.new { true }

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.condition_for(options) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/standalone_validator/named_validations/common_rails_options.rb', line 14

def self.condition_for(options)
  if options.has_key?(:if)
    options[:if].to_proc
  elsif options.has_key?(:unless)
    reverse_condition = options[:unless].to_proc
    Proc.new { |*args| not reverse_condition.call(*args) }
  else
    ALWAYS_TRUE
  end
end

.extract_options!(array) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/standalone_validator/named_validations/common_rails_options.rb', line 4

def self.extract_options!(array)
  if array.last.is_a?(Hash)
    array.pop
  else
    {}
  end
end

.included(base) ⇒ Object



25
26
27
# File 'lib/standalone_validator/named_validations/common_rails_options.rb', line 25

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#initialize(*names) ⇒ Object



41
42
43
44
45
46
# File 'lib/standalone_validator/named_validations/common_rails_options.rb', line 41

def initialize(*names)
  options = CommonRailsOptions.extract_options!(names)

  @attributes = names
  @options    = options
end