Method: Castkit::DataObject#initialize

Defined in:
lib/castkit/data_object.rb

#initialize(data = {}) ⇒ DataObject

Initializes the DTO from a hash of attributes.

Parameters:

  • data (Hash) (defaults to: {})

    raw input hash

Raises:



88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/castkit/data_object.rb', line 88

def initialize(data = {})
  super()

  cattri_variable_set(:__raw, data.dup.freeze)
  data = unwrap_root(data)

  cattri_variable_set(:unknown_attributes,
                      data.reject { |key, _| self.class.attributes.key?(key.to_sym) }.freeze)

  validate_data!(data)
  deserialize_attributes!(data)
end