Module: ActiveJobject::Parser

Included in:
Request
Defined in:
lib/active_jobject/parser.rb

Defined Under Namespace

Classes: InvalidInstance

Instance Method Summary collapse

Instance Method Details

#parse(klass, **attributes) ⇒ Object

Raises:



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/active_jobject/parser.rb', line 7

def parse(klass, **attributes)
  raise InvalidInstance, "Class #{klass&.name || klass} is not an instance." if klass.is_a?(Class)

  attributes.each do |attribute, value|
    return_value = if value.is_a?(Array)
      parse_array(klass, attribute, value)
    elsif value.is_a?(Hash)
      parse_hash(klass, attribute, value)
    else
      value
    end

    define_singleton_methods(klass, attribute, return_value)
  end

  klass
end