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.
@@ -1,2 +1,8 @@
1
- rvm: 1.9.2
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 1.9.3
5
+ - 1.9.2
6
+ - 1.8.7
7
+
2
8
  script: "bundle exec rake spec"
@@ -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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Her
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -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 = JSON.parse(env[:body], :symbolize_names => true)
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 Fünke" }.to_json)
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
- @user.inspect.should == "#<User(/users/1) id=1 name=\"Tobias Fünke\">"
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 Fünke")
20
- @user.inspect.should == "#<User(/users) name=\"Tobias Fünke\">"
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
@@ -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: "foo").should == "/users/foo"
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: "foo").should == "/utilisateurs/foo"
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: "foo").should == "/utilisateurs/foo"
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: "foo").should == "/users/foo"
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.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.000000000Z
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: -2369072493348034064
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: -2369072493348034064
228
+ hash: 3378238073562667343
294
229
  requirements: []
295
230
  rubyforge_project:
296
- rubygems_version: 1.8.18
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