api_resource 0.6.24 → 0.6.25

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07b1a645b00acdf85d9a37ae5604996819fb2f69
4
- data.tar.gz: e424fac0fa53fa9fc1377cfd120491832750969f
3
+ metadata.gz: c7debae16a87714e2db77e1d16e1ede9077e21fa
4
+ data.tar.gz: 2c576230e5fc452448be0b65474821dad6b52d81
5
5
  SHA512:
6
- metadata.gz: bafa2e16084a075cb96bdd7328c78992bf77778b741f9c9b36e50b4d815683d54534242999049845706d3264c273b6d37713cb7056139e275cdaacaf28908212
7
- data.tar.gz: eaebceec47455b15bb50114f22e5e2614ebc72342fca956c02cdd76c3d8e0445f3c8eac54eb5ccdd32f9289453e5a41a2c002fd4f6b9fdef1f970f39f1142aa4
6
+ metadata.gz: a2ffcfa6b0e2c208b1acfb7faceaec8f9666e20f5d0f2b2e8f9aafec64d4285d60f3efa37122a87a4480549e6d5e0ec75ce6a60eede61066f27aff0d03aecf20
7
+ data.tar.gz: e73c03ba1364f47f19bba03efdd548b903f3b31c4ba26c96bbded8604c02d11afc8d5f0d730973fb3bd39953770e8483e53bc3d56889b36217da4da87a15fbe6
@@ -27,29 +27,30 @@ module ApiResource
27
27
  # => 6) Klass.includes(:assoc).find(:all, a => b)
28
28
  def find(*arguments)
29
29
  # make sure we have class data before loading
30
+ lb_logger.info{ "Loading resource definition. Arguments: #{arguments.inspect}" }
30
31
  self.load_resource_definition
31
32
 
32
- initialize_arguments!(arguments)
33
+ final_conditions = initialize_arguments!(arguments)
33
34
 
34
35
  # TODO: Make this into a class attribute properly (if it isn't already)
35
36
  # this is a little bit of a hack because options can sometimes be a Condition
36
37
  expiry = @expiry
37
38
  ApiResource.with_ttl(expiry.to_f) do
38
39
  if numeric_find
39
- if (single_find || empty_find) && (@conditions.blank_conditions? || nested_find_only?)
40
+ if (single_find || empty_find) && (final_conditions.blank_conditions? || nested_find_only?(final_conditions))
40
41
  # If we have no conditions or they are only prefixes or
41
42
  # includes, and only one argument (not a word) then we
42
43
  # only have a single item to find.
43
44
  # e.g. Class.includes(:association).find(1)
44
45
  # Class.find(1)
45
- final_cond = @conditions.merge!(ApiResource::Conditions::ScopeCondition.new({:id => @scope}, self))
46
+ final_cond = final_conditions.merge!(ApiResource::Conditions::ScopeCondition.new({:id => @scope}, self))
46
47
  ApiResource::Finders::SingleFinder.new(self, final_cond).load
47
48
  else
48
49
  # e.g. Class.scope(1).find(1)
49
50
  # Class.includes(:association).find(1,2)
50
51
  # Class.find(1,2)
51
52
  # Class.active.find(1)
52
- fnd = @conditions.merge!(ApiResource::Conditions::ScopeCondition.new({:find => {:ids => @scope}}, self))
53
+ fnd = final_conditions.merge!(ApiResource::Conditions::ScopeCondition.new({:find => {:ids => @scope}}, self))
53
54
  fnd.send(:all)
54
55
  end
55
56
  else
@@ -57,7 +58,7 @@ module ApiResource
57
58
  # Class.first
58
59
  new_condition = @scope == :all ? {} : {@scope => true}
59
60
 
60
- final_cond = @conditions.merge!ApiResource::Conditions::ScopeCondition.new(new_condition, self)
61
+ final_cond = final_conditions.merge!ApiResource::Conditions::ScopeCondition.new(new_condition, self)
61
62
 
62
63
  fnd = ApiResource::Finders::ResourceFinder.new(self, final_cond)
63
64
  fnd.send(@scope)
@@ -108,10 +109,13 @@ module ApiResource
108
109
 
109
110
  def arg_ary
110
111
  if @scope.blank?
112
+ lb_logger{ "@scope.blank?: true"}
111
113
  return :none
112
114
  elsif !@scope.is_a?(Array)
115
+ lb_logger{ "!@scope.is_a?(Array): true"}
113
116
  return :single
114
117
  else
118
+ lb_logger{ "multiple: true"}
115
119
  return :multiple
116
120
  end
117
121
  end
@@ -138,6 +142,7 @@ module ApiResource
138
142
  end
139
143
 
140
144
  def single_find
145
+ lb_logger{ "arg_ary: #{arg_ary}"}
141
146
  return arg_ary == :single
142
147
  end
143
148
 
@@ -160,7 +165,7 @@ module ApiResource
160
165
 
161
166
  @expiry = (options.is_a?(Hash) ? options.delete(:expires_in) : nil) || ApiResource::Base.ttl || 0
162
167
 
163
- combine_conditions(options, cond)
168
+ final_conditions = combine_conditions(options, cond)
164
169
 
165
170
  # Remaining args are the scope.
166
171
  @scope = args
@@ -169,7 +174,7 @@ module ApiResource
169
174
  @scope = @scope.first
170
175
  end
171
176
 
172
- true
177
+ final_conditions
173
178
  end
174
179
 
175
180
  def combine_conditions(options, condition)
@@ -180,6 +185,7 @@ module ApiResource
180
185
  end
181
186
 
182
187
  final_cond = ApiResource::Conditions::ScopeCondition.new({}, self)
188
+
183
189
  # Combine all combinations of conditions and options
184
190
  if condition
185
191
  if options
@@ -191,15 +197,15 @@ module ApiResource
191
197
  final_cond = options
192
198
  end
193
199
 
194
- @conditions = final_cond
200
+ final_cond
195
201
  end
196
202
 
197
- def nested_find_only?
198
- if @conditions.blank_conditions?
203
+ def nested_find_only?(conditions)
204
+ if conditions.blank_conditions?
199
205
  return false
200
206
  else
201
- return @conditions.conditions.include?(:foreign_key_id) &&
202
- @conditions.conditions.size == 1
207
+ return conditions.conditions.include?(:foreign_key_id) &&
208
+ conditions.conditions.size == 1
203
209
  end
204
210
  end
205
211
 
@@ -1,3 +1,3 @@
1
1
  module ApiResource
2
- VERSION = "0.6.24"
2
+ VERSION = "0.6.25"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.24
4
+ version: 0.6.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan Langevin
@@ -10,34 +10,34 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-03-13 00:00:00.000000000 Z
13
+ date: 2016-04-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ">="
19
+ - - '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - '>='
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: yarjuf
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ">="
33
+ - - '>='
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ">="
40
+ - - '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
@@ -58,252 +58,252 @@ dependencies:
58
58
  name: faker
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ">="
61
+ - - '>='
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - ">="
68
+ - - '>='
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: guard-bundler
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ">="
75
+ - - '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ">="
82
+ - - '>='
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: guard-rspec
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ">="
89
+ - - '>='
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ">="
96
+ - - '>='
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: guard-spork
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - ">="
103
+ - - '>='
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - ">="
110
+ - - '>='
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: growl
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
117
+ - - '>='
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ">="
124
+ - - '>='
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: flay
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - ">="
131
+ - - '>='
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - ">="
138
+ - - '>='
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: flog
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - ">="
145
+ - - '>='
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - ">="
152
+ - - '>='
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: hash_dealer
157
157
  requirement: !ruby/object:Gem::Requirement
158
158
  requirements:
159
- - - ">="
159
+ - - '>='
160
160
  - !ruby/object:Gem::Version
161
161
  version: '0'
162
162
  type: :development
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
- - - ">="
166
+ - - '>='
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: rb-fsevent
171
171
  requirement: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - ">="
173
+ - - '>='
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  type: :development
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
- - - ">="
180
+ - - '>='
181
181
  - !ruby/object:Gem::Version
182
182
  version: '0'
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: simplecov
185
185
  requirement: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ">="
187
+ - - '>='
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  type: :development
191
191
  prerelease: false
192
192
  version_requirements: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ">="
194
+ - - '>='
195
195
  - !ruby/object:Gem::Version
196
196
  version: '0'
197
197
  - !ruby/object:Gem::Dependency
198
198
  name: byebug
199
199
  requirement: !ruby/object:Gem::Requirement
200
200
  requirements:
201
- - - ">="
201
+ - - '>='
202
202
  - !ruby/object:Gem::Version
203
203
  version: '0'
204
204
  type: :development
205
205
  prerelease: false
206
206
  version_requirements: !ruby/object:Gem::Requirement
207
207
  requirements:
208
- - - ">="
208
+ - - '>='
209
209
  - !ruby/object:Gem::Version
210
210
  version: '0'
211
211
  - !ruby/object:Gem::Dependency
212
212
  name: httpclient
213
213
  requirement: !ruby/object:Gem::Requirement
214
214
  requirements:
215
- - - ">="
215
+ - - '>='
216
216
  - !ruby/object:Gem::Version
217
217
  version: '0'
218
218
  type: :runtime
219
219
  prerelease: false
220
220
  version_requirements: !ruby/object:Gem::Requirement
221
221
  requirements:
222
- - - ">="
222
+ - - '>='
223
223
  - !ruby/object:Gem::Version
224
224
  version: '0'
225
225
  - !ruby/object:Gem::Dependency
226
226
  name: rails
227
227
  requirement: !ruby/object:Gem::Requirement
228
228
  requirements:
229
- - - ">="
229
+ - - '>='
230
230
  - !ruby/object:Gem::Version
231
231
  version: '0'
232
232
  type: :runtime
233
233
  prerelease: false
234
234
  version_requirements: !ruby/object:Gem::Requirement
235
235
  requirements:
236
- - - ">="
236
+ - - '>='
237
237
  - !ruby/object:Gem::Version
238
238
  version: '0'
239
239
  - !ruby/object:Gem::Dependency
240
240
  name: activemodel
241
241
  requirement: !ruby/object:Gem::Requirement
242
242
  requirements:
243
- - - ">="
243
+ - - '>='
244
244
  - !ruby/object:Gem::Version
245
245
  version: '0'
246
246
  type: :runtime
247
247
  prerelease: false
248
248
  version_requirements: !ruby/object:Gem::Requirement
249
249
  requirements:
250
- - - ">="
250
+ - - '>='
251
251
  - !ruby/object:Gem::Version
252
252
  version: '0'
253
253
  - !ruby/object:Gem::Dependency
254
254
  name: json
255
255
  requirement: !ruby/object:Gem::Requirement
256
256
  requirements:
257
- - - ">="
257
+ - - '>='
258
258
  - !ruby/object:Gem::Version
259
259
  version: '0'
260
260
  type: :runtime
261
261
  prerelease: false
262
262
  version_requirements: !ruby/object:Gem::Requirement
263
263
  requirements:
264
- - - ">="
264
+ - - '>='
265
265
  - !ruby/object:Gem::Version
266
266
  version: '0'
267
267
  - !ruby/object:Gem::Dependency
268
268
  name: log4r
269
269
  requirement: !ruby/object:Gem::Requirement
270
270
  requirements:
271
- - - ">="
271
+ - - '>='
272
272
  - !ruby/object:Gem::Version
273
273
  version: '0'
274
274
  type: :runtime
275
275
  prerelease: false
276
276
  version_requirements: !ruby/object:Gem::Requirement
277
277
  requirements:
278
- - - ">="
278
+ - - '>='
279
279
  - !ruby/object:Gem::Version
280
280
  version: '0'
281
281
  - !ruby/object:Gem::Dependency
282
282
  name: differ
283
283
  requirement: !ruby/object:Gem::Requirement
284
284
  requirements:
285
- - - ">="
285
+ - - '>='
286
286
  - !ruby/object:Gem::Version
287
287
  version: '0'
288
288
  type: :runtime
289
289
  prerelease: false
290
290
  version_requirements: !ruby/object:Gem::Requirement
291
291
  requirements:
292
- - - ">="
292
+ - - '>='
293
293
  - !ruby/object:Gem::Version
294
294
  version: '0'
295
295
  - !ruby/object:Gem::Dependency
296
296
  name: colorize
297
297
  requirement: !ruby/object:Gem::Requirement
298
298
  requirements:
299
- - - ">="
299
+ - - '>='
300
300
  - !ruby/object:Gem::Version
301
301
  version: '0'
302
302
  type: :runtime
303
303
  prerelease: false
304
304
  version_requirements: !ruby/object:Gem::Requirement
305
305
  requirements:
306
- - - ">="
306
+ - - '>='
307
307
  - !ruby/object:Gem::Version
308
308
  version: '0'
309
309
  description: A replacement for ActiveResource for RESTful APIs that handles associated
@@ -314,11 +314,11 @@ executables: []
314
314
  extensions: []
315
315
  extra_rdoc_files: []
316
316
  files:
317
- - ".document"
318
- - ".gitignore"
319
- - ".rspec"
320
- - ".travis.yml"
321
- - ".yardopts"
317
+ - .document
318
+ - .gitignore
319
+ - .rspec
320
+ - .travis.yml
321
+ - .yardopts
322
322
  - Gemfile
323
323
  - Gemfile.lock
324
324
  - Guardfile
@@ -445,17 +445,17 @@ require_paths:
445
445
  - lib
446
446
  required_ruby_version: !ruby/object:Gem::Requirement
447
447
  requirements:
448
- - - ">="
448
+ - - '>='
449
449
  - !ruby/object:Gem::Version
450
450
  version: '0'
451
451
  required_rubygems_version: !ruby/object:Gem::Requirement
452
452
  requirements:
453
- - - ">="
453
+ - - '>='
454
454
  - !ruby/object:Gem::Version
455
455
  version: '0'
456
456
  requirements: []
457
457
  rubyforge_project:
458
- rubygems_version: 2.2.2
458
+ rubygems_version: 2.0.3
459
459
  signing_key:
460
460
  specification_version: 4
461
461
  summary: ActiveRecord for restful APIs
@@ -502,3 +502,4 @@ test_files:
502
502
  - spec/support/requests/prefix_model_requests.rb
503
503
  - spec/support/requests/test_resource_requests.rb
504
504
  - spec/support/test_resource.rb
505
+ has_rdoc: