Class: Zoop::NestedModel
Constant Summary
Constants inherited
from ZoopObject
ZoopObject::RESOURCES
Instance Attribute Summary
Attributes inherited from ZoopObject
#attributes
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Model
class_name, create, #destroy, #save, underscored_class_name, #update
Methods inherited from ZoopObject
#==, #[]=, convert, #empty?, #initialize, #respond_to?, #to_hash, #to_s, #unsaved_attributes
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Zoop::ZoopObject
Class Method Details
.find_by_id(parent_id:, id:) ⇒ Object
Also known as:
find
20
21
22
23
24
25
|
# 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
|
.parent_resource_name ⇒ Object
16
17
18
|
# File 'lib/zoop/nested_model.rb', line 16
def parent_resource_name
raise NotImplementedError
end
|
.url(parent_id, *params) ⇒ Object
28
29
30
31
|
# 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
|
Instance Method Details
4
5
6
7
|
# File 'lib/zoop/nested_model.rb', line 4
def create
@custom_url = self.class.url(parent_id)
super
end
|
#url(*params) ⇒ Object
9
10
11
12
|
# 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
|