her 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +7 -1
- data/lib/her/api.rb +1 -1
- data/lib/her/model/orm.rb +6 -0
- data/lib/her/version.rb +1 -1
- data/spec/api_spec.rb +1 -1
- data/spec/model/introspection_spec.rb +4 -4
- data/spec/model/paths_spec.rb +4 -4
- metadata +44 -109
data/.travis.yml
CHANGED
data/lib/her/api.rb
CHANGED
@@ -74,7 +74,7 @@ module Her
|
|
74
74
|
def request(attrs={}) # {{{
|
75
75
|
method = attrs.delete(:_method)
|
76
76
|
path = attrs.delete(:_path)
|
77
|
-
attrs.delete_if { |key, value| key =~ /^_/ } # Remove all internal parameters
|
77
|
+
attrs.delete_if { |key, value| key.to_s =~ /^_/ } # Remove all internal parameters
|
78
78
|
response = @connection.send method do |request|
|
79
79
|
if method == :get
|
80
80
|
# For GET requests, treat additional parameters as querystring data
|
data/lib/her/model/orm.rb
CHANGED
@@ -31,6 +31,12 @@ module Her
|
|
31
31
|
end
|
32
32
|
end # }}}
|
33
33
|
|
34
|
+
# Override the method to prevent from returning the object ID (in ruby-1.8.7)
|
35
|
+
# @private
|
36
|
+
def id # {{{
|
37
|
+
@data[:id] || super
|
38
|
+
end # }}}
|
39
|
+
|
34
40
|
# Initialize a collection of resources with raw data from an HTTP request
|
35
41
|
#
|
36
42
|
# @param [Hash] parsed_data The raw `parsed_data` parsed from the HTTP response
|
data/lib/her/version.rb
CHANGED
data/spec/api_spec.rb
CHANGED
@@ -82,7 +82,7 @@ describe Her::API do
|
|
82
82
|
|
83
83
|
class CustomParser < Faraday::Response::Middleware
|
84
84
|
def on_complete(env)
|
85
|
-
json =
|
85
|
+
json = MultiJson.load(env[:body], :symbolize_keys => true)
|
86
86
|
errors = json.delete(:errors) || []
|
87
87
|
metadata = json.delete(:metadata) || {}
|
88
88
|
env[:body] = {
|
@@ -5,19 +5,19 @@ describe Her::Model::Introspection do
|
|
5
5
|
context "introspecting a resource" do
|
6
6
|
before do # {{{
|
7
7
|
Her::API.setup :base_uri => "https://api.example.com"
|
8
|
-
FakeWeb.register_uri(:get, "https://api.example.com/users/1", :body => { :id => 1, :name => "Tobias
|
8
|
+
FakeWeb.register_uri(:get, "https://api.example.com/users/1", :body => { :id => 1, :name => "Tobias Funke" }.to_json)
|
9
9
|
spawn_model :User
|
10
10
|
end # }}}
|
11
11
|
|
12
12
|
describe "#inspect" do
|
13
13
|
it "outputs resource attributs for an existing resource" do # {{{
|
14
14
|
@user = User.find(1)
|
15
|
-
|
15
|
+
["#<User(/users/1) name=\"Tobias Funke\" id=1>", "#<User(/users/1) id=1 name=\"Tobias Funke\">"].should include(@user.inspect)
|
16
16
|
end # }}}
|
17
17
|
|
18
18
|
it "outputs resource attributs for an not-saved-yet resource" do # {{{
|
19
|
-
@user = User.new(:name => "Tobias
|
20
|
-
@user.inspect.should == "#<User(/users) name=\"Tobias
|
19
|
+
@user = User.new(:name => "Tobias Funke")
|
20
|
+
@user.inspect.should == "#<User(/users) name=\"Tobias Funke\">"
|
21
21
|
end # }}}
|
22
22
|
end
|
23
23
|
end
|
data/spec/model/paths_spec.rb
CHANGED
@@ -10,13 +10,13 @@ describe Her::Model::Paths do
|
|
10
10
|
|
11
11
|
describe "#build_request_path" do
|
12
12
|
it "builds paths with defaults" do # {{{
|
13
|
-
User.build_request_path(id
|
13
|
+
User.build_request_path(:id => "foo").should == "/users/foo"
|
14
14
|
User.build_request_path.should == "/users"
|
15
15
|
end # }}}
|
16
16
|
|
17
17
|
it "builds paths with custom collection path" do # {{{
|
18
18
|
User.collection_path "/utilisateurs"
|
19
|
-
User.build_request_path(id
|
19
|
+
User.build_request_path(:id => "foo").should == "/utilisateurs/foo"
|
20
20
|
User.build_request_path.should == "/utilisateurs"
|
21
21
|
end # }}}
|
22
22
|
|
@@ -28,7 +28,7 @@ describe Her::Model::Paths do
|
|
28
28
|
|
29
29
|
it "builds paths with custom item path" do # {{{
|
30
30
|
User.resource_path "/utilisateurs/:id"
|
31
|
-
User.build_request_path(id
|
31
|
+
User.build_request_path(:id => "foo").should == "/utilisateurs/foo"
|
32
32
|
User.build_request_path.should == "/users"
|
33
33
|
end # }}}
|
34
34
|
|
@@ -46,7 +46,7 @@ describe Her::Model::Paths do
|
|
46
46
|
|
47
47
|
describe "#build_request_path" do
|
48
48
|
it "builds paths with defaults" do # {{{
|
49
|
-
Base::User.build_request_path(id
|
49
|
+
Base::User.build_request_path(:id => "foo").should == "/users/foo"
|
50
50
|
Base::User.build_request_path.should == "/users"
|
51
51
|
end # }}}
|
52
52
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: her
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,216 +9,151 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-01 00:00:00.
|
12
|
+
date: 2012-05-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70289715223620 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - =
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 0.9.2.2
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - '='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.9.2.2
|
24
|
+
version_requirements: *70289715223620
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: rspec
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70289715222660 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
|
-
- -
|
30
|
+
- - =
|
36
31
|
- !ruby/object:Gem::Version
|
37
32
|
version: 2.9.0
|
38
33
|
type: :development
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - '='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 2.9.0
|
35
|
+
version_requirements: *70289715222660
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: yard
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70289715221300 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
|
-
- -
|
41
|
+
- - =
|
52
42
|
- !ruby/object:Gem::Version
|
53
43
|
version: 0.7.5
|
54
44
|
type: :development
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - '='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.7.5
|
46
|
+
version_requirements: *70289715221300
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: redcarpet
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70289715220480 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
|
-
- -
|
52
|
+
- - =
|
68
53
|
- !ruby/object:Gem::Version
|
69
54
|
version: 1.17.2
|
70
55
|
type: :development
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - '='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 1.17.2
|
57
|
+
version_requirements: *70289715220480
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: mocha
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &70289715219620 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
|
-
- -
|
63
|
+
- - =
|
84
64
|
- !ruby/object:Gem::Version
|
85
65
|
version: 0.11.3
|
86
66
|
type: :development
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - '='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 0.11.3
|
68
|
+
version_requirements: *70289715219620
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: fakeweb
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &70289715218820 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
|
-
- -
|
74
|
+
- - =
|
100
75
|
- !ruby/object:Gem::Version
|
101
76
|
version: 1.3.0
|
102
77
|
type: :development
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - '='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 1.3.0
|
79
|
+
version_requirements: *70289715218820
|
110
80
|
- !ruby/object:Gem::Dependency
|
111
81
|
name: guard
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirement: &70289715217880 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
84
|
requirements:
|
115
|
-
- -
|
85
|
+
- - =
|
116
86
|
- !ruby/object:Gem::Version
|
117
87
|
version: 1.0.1
|
118
88
|
type: :development
|
119
89
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - '='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 1.0.1
|
90
|
+
version_requirements: *70289715217880
|
126
91
|
- !ruby/object:Gem::Dependency
|
127
92
|
name: guard-rspec
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &70289715233320 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
95
|
requirements:
|
131
|
-
- -
|
96
|
+
- - =
|
132
97
|
- !ruby/object:Gem::Version
|
133
98
|
version: 0.7.0
|
134
99
|
type: :development
|
135
100
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - '='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: 0.7.0
|
101
|
+
version_requirements: *70289715233320
|
142
102
|
- !ruby/object:Gem::Dependency
|
143
103
|
name: rb-fsevent
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &70289715232440 !ruby/object:Gem::Requirement
|
145
105
|
none: false
|
146
106
|
requirements:
|
147
|
-
- -
|
107
|
+
- - =
|
148
108
|
- !ruby/object:Gem::Version
|
149
109
|
version: 0.9.1
|
150
110
|
type: :development
|
151
111
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - '='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: 0.9.1
|
112
|
+
version_requirements: *70289715232440
|
158
113
|
- !ruby/object:Gem::Dependency
|
159
114
|
name: growl
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &70289715231640 !ruby/object:Gem::Requirement
|
161
116
|
none: false
|
162
117
|
requirements:
|
163
|
-
- -
|
118
|
+
- - =
|
164
119
|
- !ruby/object:Gem::Version
|
165
120
|
version: 1.0.3
|
166
121
|
type: :development
|
167
122
|
prerelease: false
|
168
|
-
version_requirements:
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - '='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 1.0.3
|
123
|
+
version_requirements: *70289715231640
|
174
124
|
- !ruby/object:Gem::Dependency
|
175
125
|
name: activesupport
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirement: &70289715230600 !ruby/object:Gem::Requirement
|
177
127
|
none: false
|
178
128
|
requirements:
|
179
|
-
- -
|
129
|
+
- - =
|
180
130
|
- !ruby/object:Gem::Version
|
181
131
|
version: 3.2.3
|
182
132
|
type: :runtime
|
183
133
|
prerelease: false
|
184
|
-
version_requirements:
|
185
|
-
none: false
|
186
|
-
requirements:
|
187
|
-
- - '='
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: 3.2.3
|
134
|
+
version_requirements: *70289715230600
|
190
135
|
- !ruby/object:Gem::Dependency
|
191
136
|
name: faraday
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
137
|
+
requirement: &70289715229920 !ruby/object:Gem::Requirement
|
193
138
|
none: false
|
194
139
|
requirements:
|
195
|
-
- -
|
140
|
+
- - =
|
196
141
|
- !ruby/object:Gem::Version
|
197
142
|
version: 0.8.0
|
198
143
|
type: :runtime
|
199
144
|
prerelease: false
|
200
|
-
version_requirements:
|
201
|
-
none: false
|
202
|
-
requirements:
|
203
|
-
- - '='
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: 0.8.0
|
145
|
+
version_requirements: *70289715229920
|
206
146
|
- !ruby/object:Gem::Dependency
|
207
147
|
name: multi_json
|
208
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirement: &70289715229140 !ruby/object:Gem::Requirement
|
209
149
|
none: false
|
210
150
|
requirements:
|
211
|
-
- -
|
151
|
+
- - =
|
212
152
|
- !ruby/object:Gem::Version
|
213
153
|
version: 1.3.4
|
214
154
|
type: :runtime
|
215
155
|
prerelease: false
|
216
|
-
version_requirements:
|
217
|
-
none: false
|
218
|
-
requirements:
|
219
|
-
- - '='
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: 1.3.4
|
156
|
+
version_requirements: *70289715229140
|
222
157
|
description: Her is an ORM that maps REST resources and collections to Ruby objects
|
223
158
|
email:
|
224
159
|
- remi@exomel.com
|
@@ -281,7 +216,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
281
216
|
version: '0'
|
282
217
|
segments:
|
283
218
|
- 0
|
284
|
-
hash:
|
219
|
+
hash: 3378238073562667343
|
285
220
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
286
221
|
none: false
|
287
222
|
requirements:
|
@@ -290,10 +225,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
290
225
|
version: '0'
|
291
226
|
segments:
|
292
227
|
- 0
|
293
|
-
hash:
|
228
|
+
hash: 3378238073562667343
|
294
229
|
requirements: []
|
295
230
|
rubyforge_project:
|
296
|
-
rubygems_version: 1.8.
|
231
|
+
rubygems_version: 1.8.10
|
297
232
|
signing_key:
|
298
233
|
specification_version: 3
|
299
234
|
summary: A simple Representational State Transfer-based Hypertext Transfer Protocol-powered
|