Module: Latitude::API::Operations::Nested

Included in:
Resources::Project
Defined in:
lib/latitude/api/operations/nested.rb

Instance Method Summary collapse

Instance Method Details

#nested_resource(name, class_name:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/latitude/api/operations/nested.rb', line 7

def nested_resource(name, class_name:)
  parent_key = path_param_keys_for_parent
  define_singleton_method(name) do |id|
    klass = Object.const_get(class_name)
    NestedAccessor.new(klass: klass, path_params: { parent_key => id })
  end

  define_method(name) do
    klass = Object.const_get(class_name)
    NestedAccessor.new(klass: klass, path_params: { parent_key => @id })
  end
end

#path_param_keys_for_parentObject



20
21
22
# File 'lib/latitude/api/operations/nested.rb', line 20

def path_param_keys_for_parent
  "#{resource_type.sub(/s\z/, '')}_id".to_sym
end