Class: Xeroizer::Record::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/xeroizer/record/validators/validator.rb,
lib/xeroizer/record/validators/block_validator.rb,
lib/xeroizer/record/validators/associated_validator.rb,
lib/xeroizer/record/validators/presence_of_validator.rb,
lib/xeroizer/record/validators/inclusion_of_validator.rb

Defined Under Namespace

Classes: AssociatedValidator, BlockValidator, InclusionOfValidator, PresenceOfValidator

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attribute, options = {}) ⇒ Validator

Returns a new instance of Validator.



9
10
11
12
# File 'lib/xeroizer/record/validators/validator.rb', line 9

def initialize(attribute, options = {})
  @attribute = attribute
  @options = options
end

Instance Attribute Details

#attributeObject (readonly)

Returns the value of attribute attribute.



6
7
8
# File 'lib/xeroizer/record/validators/validator.rb', line 6

def attribute
  @attribute
end

#optionsObject (readonly)

Returns the value of attribute options.



7
8
9
# File 'lib/xeroizer/record/validators/validator.rb', line 7

def options
  @options
end

Instance Method Details

#condition?(record, condition) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
# 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) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
# 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) ⇒ Object



14
15
16
# File 'lib/xeroizer/record/validators/validator.rb', line 14

def validate(record)
  valid?(record) if run_validator?(record, options)
end