Class: Apiwork::Adapter::Serializer::Resource::Default::ContractBuilder

Inherits:
Builder::Contract::Base show all
Defined in:
lib/apiwork/adapter/serializer/resource/default/contract_builder.rb

Instance Attribute Summary

Attributes inherited from Builder::Contract::Base

#representation_class

Instance Method Summary collapse

Methods inherited from Builder::Contract::Base

#api_class, #contract_for, #enum, #enum?, #import, #initialize, #object, #scoped_enum_name, #scoped_type_name, #type?, #union

Constructor Details

This class inherits a constructor from Apiwork::Adapter::Builder::Contract::Base

Instance Method Details

#buildObject



9
10
11
12
# File 'lib/apiwork/adapter/serializer/resource/default/contract_builder.rb', line 9

def build
  build_enums
  resource_type_name
end

#import_association_contract(association_representation, visited) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/apiwork/adapter/serializer/resource/default/contract_builder.rb', line 24

def import_association_contract(association_representation, visited)
  return nil if visited.include?(association_representation)

  association_contract = contract_for(association_representation)
  return nil unless association_contract

  alias_name = association_representation.root_key.singular.to_sym
  import(association_contract, as: alias_name)
  alias_name
end

#resource_type_nameObject



14
15
16
17
18
19
20
21
22
# File 'lib/apiwork/adapter/serializer/resource/default/contract_builder.rb', line 14

def resource_type_name
  if sti_base_representation?
    build_sti_response_union_type
  else
    register_type(representation_class.root_key.singular.to_sym)

    scoped_type_name(nil)
  end
end