api_resource 0.2.1

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.
Files changed (59) hide show
  1. data/.document +5 -0
  2. data/.rspec +3 -0
  3. data/Gemfile +29 -0
  4. data/Gemfile.lock +152 -0
  5. data/Guardfile +22 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.rdoc +19 -0
  8. data/Rakefile +49 -0
  9. data/VERSION +1 -0
  10. data/api_resource.gemspec +154 -0
  11. data/lib/api_resource.rb +129 -0
  12. data/lib/api_resource/association_activation.rb +19 -0
  13. data/lib/api_resource/associations.rb +169 -0
  14. data/lib/api_resource/associations/association_proxy.rb +115 -0
  15. data/lib/api_resource/associations/belongs_to_remote_object_proxy.rb +16 -0
  16. data/lib/api_resource/associations/dynamic_resource_scope.rb +23 -0
  17. data/lib/api_resource/associations/has_many_remote_object_proxy.rb +16 -0
  18. data/lib/api_resource/associations/has_one_remote_object_proxy.rb +24 -0
  19. data/lib/api_resource/associations/multi_argument_resource_scope.rb +15 -0
  20. data/lib/api_resource/associations/multi_object_proxy.rb +73 -0
  21. data/lib/api_resource/associations/related_object_hash.rb +12 -0
  22. data/lib/api_resource/associations/relation_scope.rb +30 -0
  23. data/lib/api_resource/associations/resource_scope.rb +34 -0
  24. data/lib/api_resource/associations/scope.rb +107 -0
  25. data/lib/api_resource/associations/single_object_proxy.rb +81 -0
  26. data/lib/api_resource/attributes.rb +162 -0
  27. data/lib/api_resource/base.rb +587 -0
  28. data/lib/api_resource/callbacks.rb +49 -0
  29. data/lib/api_resource/connection.rb +171 -0
  30. data/lib/api_resource/core_extensions.rb +7 -0
  31. data/lib/api_resource/custom_methods.rb +119 -0
  32. data/lib/api_resource/exceptions.rb +87 -0
  33. data/lib/api_resource/formats.rb +14 -0
  34. data/lib/api_resource/formats/json_format.rb +25 -0
  35. data/lib/api_resource/formats/xml_format.rb +36 -0
  36. data/lib/api_resource/local.rb +12 -0
  37. data/lib/api_resource/log_subscriber.rb +15 -0
  38. data/lib/api_resource/mocks.rb +269 -0
  39. data/lib/api_resource/model_errors.rb +86 -0
  40. data/lib/api_resource/observing.rb +29 -0
  41. data/lib/api_resource/railtie.rb +22 -0
  42. data/lib/api_resource/scopes.rb +45 -0
  43. data/spec/lib/associations_spec.rb +656 -0
  44. data/spec/lib/attributes_spec.rb +121 -0
  45. data/spec/lib/base_spec.rb +504 -0
  46. data/spec/lib/callbacks_spec.rb +68 -0
  47. data/spec/lib/connection_spec.rb +76 -0
  48. data/spec/lib/local_spec.rb +20 -0
  49. data/spec/lib/mocks_spec.rb +28 -0
  50. data/spec/lib/model_errors_spec.rb +29 -0
  51. data/spec/spec_helper.rb +36 -0
  52. data/spec/support/mocks/association_mocks.rb +46 -0
  53. data/spec/support/mocks/error_resource_mocks.rb +21 -0
  54. data/spec/support/mocks/test_resource_mocks.rb +43 -0
  55. data/spec/support/requests/association_requests.rb +14 -0
  56. data/spec/support/requests/error_resource_requests.rb +25 -0
  57. data/spec/support/requests/test_resource_requests.rb +31 -0
  58. data/spec/support/test_resource.rb +64 -0
  59. metadata +334 -0
@@ -0,0 +1,64 @@
1
+ class TestResource < ApiResource::Base
2
+ end
3
+
4
+ module MyMod
5
+ def abc
6
+ puts "HI"
7
+ end
8
+ end
9
+
10
+ class LocalResource < ApiResource::Local
11
+ include MyMod
12
+ end
13
+
14
+ class ChildTestResource < TestResource
15
+ end
16
+
17
+ class AnotherTestResource < ApiResource::Base
18
+
19
+ end
20
+
21
+ class HasManyObject < ApiResource::Base
22
+ end
23
+
24
+ class BelongsToObject < ApiResource::Base
25
+ end
26
+
27
+ class HasOneObject < ApiResource::Base
28
+ end
29
+
30
+ class ErrorResource < ApiResource::Base
31
+
32
+ end
33
+
34
+ class ScopeResource < ApiResource::Base
35
+
36
+ end
37
+
38
+ class ErrorFullMessageResource < ApiResource::Base
39
+
40
+ end
41
+
42
+ module TestMod
43
+
44
+ module InnerMod
45
+
46
+ class InnerClass < ApiResource::Base
47
+
48
+ end
49
+
50
+ end
51
+
52
+ class TestClass < ApiResource::Base
53
+
54
+ end
55
+
56
+ class TestAssociation < ApiResource::Base
57
+
58
+ end
59
+
60
+ class TestResource < ApiResource::Base
61
+
62
+ end
63
+
64
+ end
metadata ADDED
@@ -0,0 +1,334 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: api_resource
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.2.1
6
+ platform: ruby
7
+ authors:
8
+ - Ethan Langevin
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2012-01-05 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rails
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - "="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.0.9
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: hash_dealer
28
+ requirement: &id002 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rest-client
39
+ requirement: &id003 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: log4r
50
+ requirement: &id004 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: differ
61
+ requirement: &id005 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
71
+ name: colorize
72
+ requirement: &id006 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
82
+ name: rspec
83
+ requirement: &id007 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
93
+ name: ruby-debug19
94
+ requirement: &id008 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
104
+ name: growl
105
+ requirement: &id009 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
115
+ name: rspec-rails
116
+ requirement: &id010 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: "0"
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: *id010
125
+ - !ruby/object:Gem::Dependency
126
+ name: factory_girl
127
+ requirement: &id011 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: "0"
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: *id011
136
+ - !ruby/object:Gem::Dependency
137
+ name: simplecov
138
+ requirement: &id012 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: "0"
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: *id012
147
+ - !ruby/object:Gem::Dependency
148
+ name: faker
149
+ requirement: &id013 !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: "0"
155
+ type: :development
156
+ prerelease: false
157
+ version_requirements: *id013
158
+ - !ruby/object:Gem::Dependency
159
+ name: guard
160
+ requirement: &id014 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: "0"
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: *id014
169
+ - !ruby/object:Gem::Dependency
170
+ name: guard-rspec
171
+ requirement: &id015 !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: "0"
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: *id015
180
+ - !ruby/object:Gem::Dependency
181
+ name: mocha
182
+ requirement: &id016 !ruby/object:Gem::Requirement
183
+ none: false
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: "0"
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: *id016
191
+ - !ruby/object:Gem::Dependency
192
+ name: bundler
193
+ requirement: &id017 !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ~>
197
+ - !ruby/object:Gem::Version
198
+ version: 1.0.0
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: *id017
202
+ - !ruby/object:Gem::Dependency
203
+ name: jeweler
204
+ requirement: &id018 !ruby/object:Gem::Requirement
205
+ none: false
206
+ requirements:
207
+ - - ~>
208
+ - !ruby/object:Gem::Version
209
+ version: 1.6.4
210
+ type: :development
211
+ prerelease: false
212
+ version_requirements: *id018
213
+ - !ruby/object:Gem::Dependency
214
+ name: activerecord
215
+ requirement: &id019 !ruby/object:Gem::Requirement
216
+ none: false
217
+ requirements:
218
+ - - "="
219
+ - !ruby/object:Gem::Version
220
+ version: 3.0.9
221
+ type: :development
222
+ prerelease: false
223
+ version_requirements: *id019
224
+ - !ruby/object:Gem::Dependency
225
+ name: sqlite3
226
+ requirement: &id020 !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: "0"
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: *id020
235
+ description: A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources
236
+ email: ejl6266@gmail.com
237
+ executables: []
238
+
239
+ extensions: []
240
+
241
+ extra_rdoc_files:
242
+ - LICENSE.txt
243
+ - README.rdoc
244
+ files:
245
+ - .document
246
+ - .rspec
247
+ - Gemfile
248
+ - Gemfile.lock
249
+ - Guardfile
250
+ - LICENSE.txt
251
+ - README.rdoc
252
+ - Rakefile
253
+ - VERSION
254
+ - api_resource.gemspec
255
+ - lib/api_resource.rb
256
+ - lib/api_resource/association_activation.rb
257
+ - lib/api_resource/associations.rb
258
+ - lib/api_resource/associations/association_proxy.rb
259
+ - lib/api_resource/associations/belongs_to_remote_object_proxy.rb
260
+ - lib/api_resource/associations/dynamic_resource_scope.rb
261
+ - lib/api_resource/associations/has_many_remote_object_proxy.rb
262
+ - lib/api_resource/associations/has_one_remote_object_proxy.rb
263
+ - lib/api_resource/associations/multi_argument_resource_scope.rb
264
+ - lib/api_resource/associations/multi_object_proxy.rb
265
+ - lib/api_resource/associations/related_object_hash.rb
266
+ - lib/api_resource/associations/relation_scope.rb
267
+ - lib/api_resource/associations/resource_scope.rb
268
+ - lib/api_resource/associations/scope.rb
269
+ - lib/api_resource/associations/single_object_proxy.rb
270
+ - lib/api_resource/attributes.rb
271
+ - lib/api_resource/base.rb
272
+ - lib/api_resource/callbacks.rb
273
+ - lib/api_resource/connection.rb
274
+ - lib/api_resource/core_extensions.rb
275
+ - lib/api_resource/custom_methods.rb
276
+ - lib/api_resource/exceptions.rb
277
+ - lib/api_resource/formats.rb
278
+ - lib/api_resource/formats/json_format.rb
279
+ - lib/api_resource/formats/xml_format.rb
280
+ - lib/api_resource/local.rb
281
+ - lib/api_resource/log_subscriber.rb
282
+ - lib/api_resource/mocks.rb
283
+ - lib/api_resource/model_errors.rb
284
+ - lib/api_resource/observing.rb
285
+ - lib/api_resource/railtie.rb
286
+ - lib/api_resource/scopes.rb
287
+ - spec/lib/associations_spec.rb
288
+ - spec/lib/attributes_spec.rb
289
+ - spec/lib/base_spec.rb
290
+ - spec/lib/callbacks_spec.rb
291
+ - spec/lib/connection_spec.rb
292
+ - spec/lib/local_spec.rb
293
+ - spec/lib/mocks_spec.rb
294
+ - spec/lib/model_errors_spec.rb
295
+ - spec/spec_helper.rb
296
+ - spec/support/mocks/association_mocks.rb
297
+ - spec/support/mocks/error_resource_mocks.rb
298
+ - spec/support/mocks/test_resource_mocks.rb
299
+ - spec/support/requests/association_requests.rb
300
+ - spec/support/requests/error_resource_requests.rb
301
+ - spec/support/requests/test_resource_requests.rb
302
+ - spec/support/test_resource.rb
303
+ homepage: http://github.com/ejlangev/resource
304
+ licenses:
305
+ - MIT
306
+ post_install_message:
307
+ rdoc_options: []
308
+
309
+ require_paths:
310
+ - lib
311
+ required_ruby_version: !ruby/object:Gem::Requirement
312
+ none: false
313
+ requirements:
314
+ - - ">="
315
+ - !ruby/object:Gem::Version
316
+ hash: 1458540798497608710
317
+ segments:
318
+ - 0
319
+ version: "0"
320
+ required_rubygems_version: !ruby/object:Gem::Requirement
321
+ none: false
322
+ requirements:
323
+ - - ">="
324
+ - !ruby/object:Gem::Version
325
+ version: "0"
326
+ requirements: []
327
+
328
+ rubyforge_project:
329
+ rubygems_version: 1.8.11
330
+ signing_key:
331
+ specification_version: 3
332
+ summary: A replacement for ActiveResource for RESTful APIs that handles associated object and multiple data sources
333
+ test_files: []
334
+