Class: ValidatedObject::Base Abstract
- Inherits:
-
Object
- Object
- ValidatedObject::Base
- Extended by:
- T::Sig
- Includes:
- ActiveModel::Validations, SimplifiedApi
- 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
- SymbolHash =
T.type_alias { T::Hash[Symbol, T.untyped] }
- EMPTY_HASH =
T.let({}.freeze, SymbolHash)
Class Method Summary collapse
-
.validated(*args, **kwargs, &block) ⇒ Object
Allow ‘validated’ as a synonym for ‘validates’.
Instance Method Summary collapse
- #check_validations! ⇒ Object
-
#initialize(attributes = EMPTY_HASH) ⇒ Base
constructor
A new instance of Base.
- #validated_attr(attribute_name, **validation_options) ⇒ Object
Constructor Details
#initialize(attributes = EMPTY_HASH) ⇒ Base
Returns a new instance of Base.
70 71 72 73 74 |
# File 'lib/validated_object.rb', line 70 def initialize(attributes = EMPTY_HASH) set_instance_variables from_hash: attributes check_validations! nil end |
Class Method Details
.validated(*args, **kwargs, &block) ⇒ Object
Allow ‘validated’ as a synonym for ‘validates’
160 161 162 |
# File 'lib/validated_object.rb', line 160 def self.validated(*args, **kwargs, &block) validates(*args, **kwargs, &block) end |
Instance Method Details
#check_validations! ⇒ Object
86 87 88 89 90 |
# File 'lib/validated_object.rb', line 86 def check_validations! raise ArgumentError, errors..join('; ') if invalid? self end |
#validated_attr(attribute_name, **validation_options) ⇒ Object
76 77 78 79 |
# File 'lib/validated_object.rb', line 76 def validated_attr(attribute_name, **) attr_reader attribute_name validates attribute_name, end |