class Zoop::NestedModel

Public Class Methods

find(parent_id:, id:)
Alias for: find_by_id
find_by_id(parent_id:, id:) click to toggle source
# File lib/zoop/nested_model.rb, line 20
def find_by_id(parent_id:, id:)
  raise RequestError.new('Invalid ID')        unless        id.present?
  raise RequestError.new('Invalid parent ID') unless parent_id.present?

  Zoop::Request.get(url parent_id, id).call
end
Also aliased as: find
parent_resource_name() click to toggle source
# File lib/zoop/nested_model.rb, line 16
def parent_resource_name
  raise NotImplementedError
end
url(parent_id, *params) click to toggle source
# File lib/zoop/nested_model.rb, line 28
def url(parent_id, *params)
  raise RequestError.new('Invalid parent ID') unless parent_id.present?
  ["/#{parent_resource_name}", parent_id, "#{ CGI.escape underscored_class_name }s", *params].join '/'
end

Public Instance Methods

create() click to toggle source
Calls superclass method Zoop::Model#create
# File lib/zoop/nested_model.rb, line 4
def create
  @custom_url = self.class.url(parent_id)
  super
end
url(*params) click to toggle source
# File lib/zoop/nested_model.rb, line 9
def url(*params)
  raise RequestError.new('Invalid ID') unless id.present?
  self.class.url parent_id, CGI.escape(id.to_s), *params
end

Protected Instance Methods

parent_id() click to toggle source
# File lib/zoop/nested_model.rb, line 36
def parent_id
  raise NotImplementedError
end