Class: ValidatedObject::Base Abstract
- Inherits:
-
Object
- Object
- ValidatedObject::Base
- Includes:
- ActiveModel::Validations
- Defined in:
- lib/validated_object.rb
Overview
This class is abstract.
Subclass and add ‘attr_accessor` and validations to create custom validating objects.
Uses ActiveModel::Validations to create self-validating Plain Old Ruby objects. This is especially useful when importing data from one system into another. This class also creates very readable error messages.
Defined Under Namespace
Classes: Boolean, TypeValidator
Constant Summary collapse
- EMPTY_HASH =
{}.freeze
Instance Method Summary collapse
-
#check_validations! ⇒ ValidatedObject::Base
Run any validations and raise an error if invalid.
-
#initialize(attributes = EMPTY_HASH) ⇒ Base
constructor
Instantiate and validate a new object.
Constructor Details
#initialize(attributes = EMPTY_HASH) ⇒ Base
Instantiate and validate a new object.
61 62 63 64 65 66 67 |
# File 'lib/validated_object.rb', line 61 def initialize(attributes=EMPTY_HASH) raise ArgumentError, "#{attributes} is not a Hash" unless attributes.is_a?(Hash) set_instance_variables from_hash: attributes check_validations! return self end |
Instance Method Details
#check_validations! ⇒ ValidatedObject::Base
Run any validations and raise an error if invalid.
73 74 75 76 |
# File 'lib/validated_object.rb', line 73 def check_validations! raise ArgumentError, errors..join('; ') if invalid? self end |