Class: Xeroizer::Record::Validator
- Inherits:
-
Object
- Object
- Xeroizer::Record::Validator
- 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
Direct Known Subclasses
AssociatedValidator, BlockValidator, InclusionOfValidator, PresenceOfValidator
Defined Under Namespace
Classes: AssociatedValidator, BlockValidator, InclusionOfValidator, PresenceOfValidator
Instance Attribute Summary collapse
-
#attribute ⇒ Object
readonly
Returns the value of attribute attribute.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #condition?(record, condition) ⇒ Boolean
-
#initialize(attribute, options = {}) ⇒ Validator
constructor
A new instance of Validator.
- #run_validator?(record, options) ⇒ Boolean
- #validate(record) ⇒ Object
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, = {}) @attribute = attribute @options = end |
Instance Attribute Details
#attribute ⇒ Object (readonly)
Returns the value of attribute attribute.
6 7 8 |
# File 'lib/xeroizer/record/validators/validator.rb', line 6 def attribute @attribute end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
7 8 9 |
# File 'lib/xeroizer/record/validators/validator.rb', line 7 def @options end |
Instance Method Details
#condition?(record, condition) ⇒ 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
18 19 20 21 22 |
# File 'lib/xeroizer/record/validators/validator.rb', line 18 def run_validator?(record, ) return false if [:if] && !condition?(record, [:if]) return false if [:unless] && condition?(record, [: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, ) end |