Class: JsonApiClient::Resource
Class Method Summary
collapse
Instance Method Summary
collapse
#method_missing, #respond_to?
#as_json, #read_attribute_for_serialization
#[], #[]=, #attributes=, #persisted?, #query_params, #respond_to?, #to_param, #update_attributes
#initialize
Class Method Details
.create(conditions = {}) ⇒ Object
35
36
37
38
39
40
41
42
|
# File 'lib/json_api_client/resource.rb', line 35
def create(conditions = {})
result = run_request(Query::Create.new(self, conditions))
if result.has_errors?
yield(result) if block_given?
return nil
end
result.first
end
|
.find(conditions) ⇒ Object
31
32
33
|
# File 'lib/json_api_client/resource.rb', line 31
def find(conditions)
run_request(Query::Find.new(self, conditions))
end
|
.resource ⇒ Object
base URL for this resource
19
20
21
|
# File 'lib/json_api_client/resource.rb', line 19
def resource
File.join(site, path)
end
|
.resource_name ⇒ Object
27
28
29
|
# File 'lib/json_api_client/resource.rb', line 27
def resource_name
name.demodulize.underscore
end
|
.run_request(query) ⇒ Object
44
45
46
|
# File 'lib/json_api_client/resource.rb', line 44
def run_request(query)
parse(connection.execute(query))
end
|
.table_name ⇒ Object
23
24
25
|
# File 'lib/json_api_client/resource.rb', line 23
def table_name
resource_name.pluralize
end
|
Instance Method Details
#destroy ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/json_api_client/resource.rb', line 67
def destroy
if run_request(Query::Destroy.new(self.class, attributes))
self.attributes.clear
true
else
false
end
end
|
#save ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/json_api_client/resource.rb', line 59
def save
query = persisted? ?
Query::Update.new(self.class, attributes) :
Query::Create.new(self.class, attributes)
run_request(query)
end
|