Class: Apiwork::Introspection::Dump::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/apiwork/introspection/dump/resource.rb

Instance Method Summary collapse

Constructor Details

#initialize(resource, api_class, parent_identifiers: [], parent_param: nil, parent_path: nil, parent_singular: false) ⇒ Resource

Returns a new instance of Resource.



7
8
9
10
11
12
13
14
# File 'lib/apiwork/introspection/dump/resource.rb', line 7

def initialize(resource, api_class, parent_identifiers: [], parent_param: nil, parent_path: nil, parent_singular: false)
  @resource = resource
  @api_class = api_class
  @parent_identifiers = parent_identifiers
  @parent_param = parent_param
  @parent_path = parent_path
  @parent_singular = parent_singular
end

Instance Method Details

#to_hObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/apiwork/introspection/dump/resource.rb', line 16

def to_h
  formatted_segment = @api_class.transform_path(
    @resource.path || (@resource.singular ? @resource.name.to_s.singularize : @resource.name.to_s),
  )

  resource_path = build_resource_path(formatted_segment)
  contract_class = resolve_contract_class

  {
    actions: build_actions(contract_class, resource_path),
    identifier: @resource.name.to_s,
    parent_identifiers: @parent_identifiers,
    path: resource_path,
    resources: build_nested_resources(resource_path),
    scope: contract_class&.scope_prefix&.to_s,
  }
end