Class: LazyLazer::KeyMetadata
- Inherits:
-
Object
- Object
- LazyLazer::KeyMetadata
- Defined in:
- lib/lazy_lazer/key_metadata.rb
Overview
Simple PORO for key metadata. Yay value objects!
Instance Attribute Summary collapse
-
#default ⇒ Proc, Object
The default value or generator.
-
#default_provided ⇒ Boolean
writeonly
Whether a default was provided.
-
#required ⇒ Boolean
writeonly
Whether the key must exist when creating the model.
-
#source_key ⇒ Symbol
The key to fetch the value from.
-
#transform ⇒ Proc, ...
The method or proc that transforms the return value.
Instance Method Summary collapse
-
#default_provided? ⇒ Boolean
Whether no default was provided.
-
#initialize(key_name, *boolean_options, **options) ⇒ KeyMetadata
constructor
Load attributes from a ClassMethods#property method signature.
-
#required? ⇒ Boolean
Whether the key must exist when creating the model.
Constructor Details
#initialize(key_name, *boolean_options, **options) ⇒ KeyMetadata
Load attributes from a ClassMethods#property method signature.
25 26 27 28 29 30 31 32 |
# File 'lib/lazy_lazer/key_metadata.rb', line 25 def initialize(key_name, *, **) .each_with_object() { |sym, hsh| hsh[sym] = true } self.source_key = [:from] || key_name self.required = !![:required] self.default_provided = .key?(:default) || [:nil] self.transform = [:with] self.default = [:default] end |
Instance Attribute Details
#default ⇒ Proc, Object
Returns the default value or generator.
18 19 20 |
# File 'lib/lazy_lazer/key_metadata.rb', line 18 def default @default end |
#default_provided=(value) ⇒ Boolean (writeonly)
Returns whether a default was provided.
15 16 17 |
# File 'lib/lazy_lazer/key_metadata.rb', line 15 def default_provided=(value) @default_provided = value end |
#required=(value) ⇒ Boolean (writeonly)
Returns whether the key must exist when creating the model.
12 13 14 |
# File 'lib/lazy_lazer/key_metadata.rb', line 12 def required=(value) @required = value end |
#source_key ⇒ Symbol
Returns the key to fetch the value from.
9 10 11 |
# File 'lib/lazy_lazer/key_metadata.rb', line 9 def source_key @source_key end |
#transform ⇒ Proc, ...
Returns the method or proc that transforms the return value.
21 22 23 |
# File 'lib/lazy_lazer/key_metadata.rb', line 21 def transform @transform end |
Instance Method Details
#default_provided? ⇒ Boolean
Returns whether no default was provided.
40 41 42 |
# File 'lib/lazy_lazer/key_metadata.rb', line 40 def default_provided? @default_provided end |
#required? ⇒ Boolean
Returns whether the key must exist when creating the model.
35 36 37 |
# File 'lib/lazy_lazer/key_metadata.rb', line 35 def required? @required end |