Module: Jat::Plugins::SimpleApi::ResponsePiece::InstanceMethods

Included in:
Jat::Plugins::SimpleApi::ResponsePiece
Defined in:
lib/jat/plugins/simple_api/lib/response_piece.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



25
26
27
# File 'lib/jat/plugins/simple_api/lib/response_piece.rb', line 25

def context
  @context
end

#jat_classObject (readonly)

Returns the value of attribute jat_class.



25
26
27
# File 'lib/jat/plugins/simple_api/lib/response_piece.rb', line 25

def jat_class
  @jat_class
end

#objectObject (readonly)

Returns the value of attribute object.



25
26
27
# File 'lib/jat/plugins/simple_api/lib/response_piece.rb', line 25

def object
  @object
end

Instance Method Details

#initialize(object, context) ⇒ Object



27
28
29
30
31
# File 'lib/jat/plugins/simple_api/lib/response_piece.rb', line 27

def initialize(object, context)
  @object = object
  @context = context
  @jat_class = self.class.jat_class
end

#piece(map) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/jat/plugins/simple_api/lib/response_piece.rb', line 33

def piece(map)
  return unless object

  result = {}

  map.each do |key, inner_map|
    attribute = jat_class.attributes.fetch(key)
    value = attribute.value(object, context)

    result[key] =
      if attribute.relation?
        if many?(attribute, value)
          value.map { |obj| inner_piece(attribute, obj, inner_map) }
        else
          inner_piece(attribute, value, inner_map)
        end
      else
        value
      end
  end

  result
end