class Xeroizer::Record::Validator

Attributes

attribute[R]
options[R]

Public Class Methods

new(attribute, options = {}) click to toggle source
# File lib/xeroizer/record/validators/validator.rb, line 9
def initialize(attribute, options = {})
  @attribute = attribute
  @options = options
end

Public Instance Methods

condition?(record, condition) click to toggle source
# File lib/xeroizer/record/validators/validator.rb, line 24
def condition?(record, condition)
  return condition.call(record) if condition.respond_to? :call
  return record.send(condition) if condition.is_a? Symbol
  raise "Validation condition must be a Symbol or an Object that responds to call"
end
run_validator?(record, options) click to toggle source
# File lib/xeroizer/record/validators/validator.rb, line 18
def run_validator?(record, options)
  return false if options[:if] && !condition?(record, options[:if])
  return false if options[:unless] && condition?(record, options[:unless])
  true
end
validate(record) click to toggle source
# File lib/xeroizer/record/validators/validator.rb, line 14
def validate(record)
  valid?(record) if run_validator?(record, options)
end