module StandaloneValidator::NamedValidations::CommonRailsOptions

Constants

ALWAYS_TRUE

Attributes

attributes[R]
options[R]

Public Class Methods

condition_for(options) click to toggle source
# 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

    ->(*args) {
      negates = instance_exec(*args, &reverse_condition)
      not negates
    }
  else
    ALWAYS_TRUE
  end
end
extract_options!(array) click to toggle source
# 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) click to toggle source
# File lib/standalone_validator/named_validations/common_rails_options.rb, line 29
def self.included(base)
  base.extend(ClassMethods)
end
new(*names) click to toggle source
# File lib/standalone_validator/named_validations/common_rails_options.rb, line 43
def initialize(*names)
  options = CommonRailsOptions.extract_options!(names)

  @attributes = names
  @options    = options
end

Private Instance Methods

condition() click to toggle source
# File lib/standalone_validator/named_validations/common_rails_options.rb, line 57
def condition
  @condition ||= CommonRailsOptions.condition_for(options)
end
each_validated_attribute_on(object) { |attribute_name, value| ... } click to toggle source
# File lib/standalone_validator/named_validations/common_rails_options.rb, line 61
def each_validated_attribute_on(object)
  return to_enum(:each_validated_attribute, object) unless block_given?

  attributes.each do |attribute_name|
    value = object.send(attribute_name)
    yield(attribute_name, value)
  end
end
evaluate_condition(object) click to toggle source
# File lib/standalone_validator/named_validations/common_rails_options.rb, line 53
def evaluate_condition(object)
  instance_exec(object, &condition)
end