Class: DataClass::Definition
- Inherits:
-
Object
- Object
- DataClass::Definition
- Defined in:
- lib/data_class/definition.rb
Overview
An internal class for providing validation of ‘Data.define` and its initializer.
Instance Attribute Summary collapse
-
#attribute_names ⇒ Object
readonly
Returns the value of attribute attribute_names.
Instance Method Summary collapse
-
#initialize(attribute_names) ⇒ Definition
constructor
A new instance of Definition.
- #validate(kwargs) ⇒ Object
Constructor Details
#initialize(attribute_names) ⇒ Definition
Returns a new instance of Definition.
9 10 11 12 |
# File 'lib/data_class/definition.rb', line 9 def initialize(attribute_names) validate_attribute_names(attribute_names) @attribute_names = attribute_names.each { |key| validate_attribute_name(key) } end |
Instance Attribute Details
#attribute_names ⇒ Object (readonly)
Returns the value of attribute attribute_names.
13 14 15 |
# File 'lib/data_class/definition.rb', line 13 def attribute_names @attribute_names end |
Instance Method Details
#validate(kwargs) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/data_class/definition.rb', line 16 def validate(kwargs) if attribute_names - kwargs.keys != [] raise ArgumentError, "missing keyword: #{(attribute_names - kwargs.keys).join(', ')}" end if kwargs.keys - attribute_names != [] raise ArgumentError, "unknown keyword: #{(kwargs.keys - attribute_names).join(', ')}" end nil end |