api-client 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
data/lib/api-client/base.rb
CHANGED
@@ -109,14 +109,19 @@ module ApiClient
|
|
109
109
|
@attributes
|
110
110
|
end
|
111
111
|
|
112
|
-
# Return
|
112
|
+
# Return a hash with all instance variables setted through attr_accessor and its currently values.
|
113
113
|
#
|
114
114
|
# @return [Hash] instance variables and its values.
|
115
115
|
def attributes
|
116
116
|
self.class.instance_variable_get('@attributes').inject({}) { |hash, attribute| hash.merge(attribute.to_sym => self.send("#{attribute}")) }
|
117
117
|
end
|
118
118
|
|
119
|
-
|
119
|
+
# Return a hash with a root node and all instance variables setted through attr_accessor and its currently values.
|
120
|
+
#
|
121
|
+
# @return [Hash] instance variables and its values.
|
122
|
+
def to_hash
|
123
|
+
{ self.class.root_node.to_sym => attributes }
|
124
|
+
end
|
120
125
|
|
121
126
|
# Initialize a collection of objects. The collection will be an ApiClient::Collection object.
|
122
127
|
# The objects in the collection will be all instances of this (ApiClient::Base) class.
|
@@ -23,21 +23,21 @@ module ApiClient
|
|
23
23
|
|
24
24
|
def post(header = {})
|
25
25
|
url = "#{ApiClient.config.path}#{self.class.resource_path}"
|
26
|
-
response = ApiClient::Dispatcher.post(url, self.
|
26
|
+
response = ApiClient::Dispatcher.post(url, self.to_hash, header)
|
27
27
|
attributes = ApiClient::Parser.response(response, url)
|
28
28
|
update_attributes(attributes)
|
29
29
|
end
|
30
30
|
|
31
31
|
def put(header = {})
|
32
32
|
url = "#{ApiClient.config.path}#{self.class.resource_path}/#{id}"
|
33
|
-
response = ApiClient::Dispatcher.put(url, self.
|
33
|
+
response = ApiClient::Dispatcher.put(url, self.to_hash, header)
|
34
34
|
attributes = ApiClient::Parser.response(response, url)
|
35
35
|
update_attributes(attributes)
|
36
36
|
end
|
37
37
|
|
38
38
|
def patch(header = {})
|
39
39
|
url = "#{ApiClient.config.path}#{self.class.resource_path}/#{id}"
|
40
|
-
response = ApiClient::Dispatcher.post(url, self.
|
40
|
+
response = ApiClient::Dispatcher.post(url, self.to_hash, header)
|
41
41
|
attributes = ApiClient::Parser.response(response, url)
|
42
42
|
update_attributes(attributes)
|
43
43
|
end
|
data/lib/api-client/version.rb
CHANGED
@@ -140,6 +140,12 @@ describe ApiClient::Base do
|
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
|
+
describe '#to_hash' do
|
144
|
+
it 'should return a hash with root node and the attributes and its currently values' do
|
145
|
+
User.new.to_hash.should == { :user => { :a => nil, :b => nil } }
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
143
149
|
describe '.collection' do
|
144
150
|
before :each do
|
145
151
|
ApiClient::Collection.stub(:new).with(User, 'users').and_return(collection)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -194,7 +194,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
194
194
|
version: '0'
|
195
195
|
segments:
|
196
196
|
- 0
|
197
|
-
hash:
|
197
|
+
hash: 725018755031888977
|
198
198
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
199
|
none: false
|
200
200
|
requirements:
|
@@ -203,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
203
|
version: '0'
|
204
204
|
segments:
|
205
205
|
- 0
|
206
|
-
hash:
|
206
|
+
hash: 725018755031888977
|
207
207
|
requirements: []
|
208
208
|
rubyforge_project:
|
209
209
|
rubygems_version: 1.8.25
|