api_resource 0.4.1 → 0.4.2

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 (116) hide show
  1. data/Gemfile +37 -0
  2. data/Gemfile.lock +190 -0
  3. data/Guardfile +27 -0
  4. data/Rakefile +49 -0
  5. data/VERSION +1 -0
  6. data/api_resource.gemspec +111 -0
  7. data/coverage/assets/0.5.3/app.js +88 -0
  8. data/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
  9. data/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
  10. data/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
  11. data/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
  12. data/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
  13. data/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
  14. data/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
  15. data/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
  16. data/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
  17. data/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
  18. data/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
  19. data/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
  20. data/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
  21. data/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
  22. data/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
  23. data/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
  24. data/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
  25. data/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
  26. data/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
  27. data/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
  28. data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
  29. data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  30. data/coverage/assets/0.5.3/favicon_green.png +0 -0
  31. data/coverage/assets/0.5.3/favicon_red.png +0 -0
  32. data/coverage/assets/0.5.3/favicon_yellow.png +0 -0
  33. data/coverage/assets/0.5.3/highlight.css +129 -0
  34. data/coverage/assets/0.5.3/highlight.pack.js +1 -0
  35. data/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
  36. data/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
  37. data/coverage/assets/0.5.3/jquery.timeago.js +141 -0
  38. data/coverage/assets/0.5.3/jquery.url.js +174 -0
  39. data/coverage/assets/0.5.3/loading.gif +0 -0
  40. data/coverage/assets/0.5.3/magnify.png +0 -0
  41. data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  42. data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  43. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  44. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  45. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  46. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  47. data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  48. data/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  49. data/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
  50. data/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  51. data/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
  52. data/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
  53. data/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  54. data/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  55. data/coverage/assets/0.5.3/stylesheet.css +383 -0
  56. data/coverage/index.html +3573 -0
  57. data/lib/api_resource.rb +130 -0
  58. data/lib/api_resource/association_activation.rb +19 -0
  59. data/lib/api_resource/associations.rb +218 -0
  60. data/lib/api_resource/associations/association_proxy.rb +116 -0
  61. data/lib/api_resource/associations/belongs_to_remote_object_proxy.rb +16 -0
  62. data/lib/api_resource/associations/dynamic_resource_scope.rb +23 -0
  63. data/lib/api_resource/associations/generic_scope.rb +68 -0
  64. data/lib/api_resource/associations/has_many_remote_object_proxy.rb +16 -0
  65. data/lib/api_resource/associations/has_many_through_remote_object_proxy.rb +13 -0
  66. data/lib/api_resource/associations/has_one_remote_object_proxy.rb +24 -0
  67. data/lib/api_resource/associations/multi_argument_resource_scope.rb +15 -0
  68. data/lib/api_resource/associations/multi_object_proxy.rb +84 -0
  69. data/lib/api_resource/associations/related_object_hash.rb +12 -0
  70. data/lib/api_resource/associations/relation_scope.rb +25 -0
  71. data/lib/api_resource/associations/resource_scope.rb +32 -0
  72. data/lib/api_resource/associations/scope.rb +132 -0
  73. data/lib/api_resource/associations/single_object_proxy.rb +82 -0
  74. data/lib/api_resource/attributes.rb +243 -0
  75. data/lib/api_resource/base.rb +717 -0
  76. data/lib/api_resource/callbacks.rb +45 -0
  77. data/lib/api_resource/connection.rb +195 -0
  78. data/lib/api_resource/core_extensions.rb +7 -0
  79. data/lib/api_resource/custom_methods.rb +117 -0
  80. data/lib/api_resource/decorators.rb +6 -0
  81. data/lib/api_resource/decorators/caching_decorator.rb +20 -0
  82. data/lib/api_resource/exceptions.rb +99 -0
  83. data/lib/api_resource/formats.rb +22 -0
  84. data/lib/api_resource/formats/json_format.rb +25 -0
  85. data/lib/api_resource/formats/xml_format.rb +36 -0
  86. data/lib/api_resource/local.rb +12 -0
  87. data/lib/api_resource/log_subscriber.rb +15 -0
  88. data/lib/api_resource/mocks.rb +285 -0
  89. data/lib/api_resource/model_errors.rb +82 -0
  90. data/lib/api_resource/observing.rb +27 -0
  91. data/lib/api_resource/railtie.rb +24 -0
  92. data/lib/api_resource/scopes.rb +48 -0
  93. data/nohup.out +63 -0
  94. data/spec/lib/api_resource_spec.rb +43 -0
  95. data/spec/lib/associations_spec.rb +751 -0
  96. data/spec/lib/attributes_spec.rb +191 -0
  97. data/spec/lib/base_spec.rb +655 -0
  98. data/spec/lib/callbacks_spec.rb +68 -0
  99. data/spec/lib/connection_spec.rb +137 -0
  100. data/spec/lib/local_spec.rb +20 -0
  101. data/spec/lib/mocks_spec.rb +74 -0
  102. data/spec/lib/model_errors_spec.rb +29 -0
  103. data/spec/lib/prefixes_spec.rb +107 -0
  104. data/spec/spec_helper.rb +82 -0
  105. data/spec/support/mocks/association_mocks.rb +63 -0
  106. data/spec/support/mocks/error_resource_mocks.rb +21 -0
  107. data/spec/support/mocks/prefix_model_mocks.rb +5 -0
  108. data/spec/support/mocks/test_resource_mocks.rb +44 -0
  109. data/spec/support/requests/association_requests.rb +31 -0
  110. data/spec/support/requests/error_resource_requests.rb +25 -0
  111. data/spec/support/requests/prefix_model_requests.rb +7 -0
  112. data/spec/support/requests/test_resource_requests.rb +38 -0
  113. data/spec/support/test_resource.rb +72 -0
  114. data/spec/tmp/DIR +0 -0
  115. data/spec/tmp/api_resource_test_db.sqlite +0 -0
  116. metadata +119 -3
@@ -0,0 +1,63 @@
1
+ include ApiResource
2
+
3
+ Mocks.define do
4
+
5
+ endpoint('/single_object_association') do
6
+ get(HashDealer.roll(:test_association_resource), :params => {})
7
+ get(HashDealer.roll(:active_test_association_resource), :params => {:active => true})
8
+ get(HashDealer.roll(:active_birthday_test_association_resource), :params => {:active => true, :birthday => true})
9
+ get(HashDealer.roll(:inactive_birthday_test_association_resource), :params => {:active => false, :birthday => true})
10
+ end
11
+
12
+ endpoint("/mock_with_block/:id") do
13
+ get({:abc => 123}, {:params => {:test => "123"}.matcher}) do |params|
14
+ self[:test] = params[:test]
15
+ self[:id] = params[:id]
16
+ self
17
+ end
18
+ end
19
+
20
+ endpoint('/multi_object_association') do
21
+ get((0..4).to_a.collect{HashDealer.roll(:test_association_resource)}, :params => {})
22
+ get((0..4).to_a.collect{HashDealer.roll(:active_test_association_resource)}, :params => {:active => true})
23
+ get((0..4).to_a.collect{HashDealer.roll(:active_test_association_resource)}, :params => {:active => false})
24
+ get((0..4).to_a.collect{HashDealer.roll(:active_birthday_test_association_resource)}, :params => {:active => true, :birthday => true})
25
+ end
26
+
27
+ endpoint("/has_one_objects/new") do
28
+ get({
29
+ "attributes" => {
30
+ "public" => ["size", "color"]
31
+ }
32
+ })
33
+ end
34
+
35
+ endpoint("/has_many_objects/new") do
36
+ get({
37
+ "attributes" => {
38
+ "public" => ["name"]
39
+ }
40
+ })
41
+ end
42
+
43
+ endpoint("/belongs_to_objects/new") do
44
+ get({})
45
+ end
46
+
47
+ endpoint("/test_associations/new") do
48
+ get({})
49
+ end
50
+
51
+ endpoint("/inner_classes/new") do
52
+ get({})
53
+ end
54
+
55
+ endpoint("/childern/new") do
56
+ get({})
57
+ end
58
+
59
+ endpoint("/test_throughs/new") do
60
+ get({})
61
+ end
62
+
63
+ end
@@ -0,0 +1,21 @@
1
+ include ApiResource
2
+
3
+ Mocks.define do
4
+
5
+ endpoint("/error_resources/new") do
6
+ get(HashDealer.roll(:new_error_resource))
7
+ end
8
+
9
+ endpoint("/error_resources") do
10
+ post(HashDealer.roll(:error_resource_errors), :params => {:error_resource => HashDealer.roll(:error_resource).matcher}, :status_code => 422)
11
+ end
12
+
13
+ endpoint("/error_full_message_resources/new") do
14
+ get(HashDealer.roll(:new_error_resource))
15
+ end
16
+
17
+ endpoint("/error_full_message_resources") do
18
+ post(HashDealer.roll(:error_resource_full_message_errors), :params => {:error_full_message_resource => HashDealer.roll(:error_resource).matcher}, :status_code => 422)
19
+ end
20
+
21
+ end
@@ -0,0 +1,5 @@
1
+ ApiResource::Mocks.define do
2
+ endpoint("/prefix_models/new.json") do
3
+ get(HashDealer.roll(:new_prefix_model_response))
4
+ end
5
+ end
@@ -0,0 +1,44 @@
1
+ include ApiResource
2
+
3
+ Mocks.define do
4
+
5
+ endpoint("/test_resources/new") do
6
+ get(HashDealer.roll(:new_test_object))
7
+ end
8
+
9
+ endpoint("/test_resources") do
10
+ post(HashDealer.roll(:test_resource).merge(:id => 1), :params => {:test_resource => HashDealer.roll(:test_resource).matcher})
11
+ post(HashDealer.roll(:test_resource).merge(:id => 1), :params => {:test_resource => HashDealer.roll(:test_resource_with_roles).matcher})
12
+ get((0..4).to_a.collect{HashDealer.roll(:test_resource)})
13
+ get((0..4).to_a.collect{HashDealer.roll(:test_resource)}, :params => {:active => true})
14
+ end
15
+
16
+ endpoint("/test_resources/:id") do
17
+ get(HashDealer.roll(:test_resource_with_proxies)) do |params|
18
+ self.merge(params)
19
+ end
20
+ delete({})
21
+ put({}, :params => {:test_resource => HashDealer.roll(:test_resource).matcher})
22
+ end
23
+
24
+ endpoint("/child_test_resources/new") do
25
+ get({})
26
+ end
27
+
28
+ endpoint("/child_test_resource2s/new") do
29
+ get({})
30
+ end
31
+
32
+ endpoint("/another_test_resources/new") do
33
+ get({})
34
+ end
35
+
36
+ endpoint("/test_classes/new") do
37
+ get({})
38
+ end
39
+
40
+ endpoint("/children/new") do
41
+ get({})
42
+ end
43
+
44
+ end
@@ -0,0 +1,31 @@
1
+ HashDealer.define(:test_association_resource) do
2
+ id{Kernel.rand(99999)}
3
+ name{Faker::Name.first_name}
4
+ age{Kernel.rand(99999)}
5
+ active(false)
6
+ end
7
+
8
+ HashDealer.define(:active_test_association_resource, :parent => :test_association_resource) do
9
+ active(true)
10
+ end
11
+
12
+ HashDealer.define(:active_birthday_test_association_resource, :parent => :active_test_association_resource) do
13
+ birthday{Date.today}
14
+ end
15
+
16
+ HashDealer.define(:inactive_test_association_resource, :parent => :test_association_resource) do
17
+ active(false)
18
+ end
19
+
20
+ HashDealer.define(:inactive_birthday_test_association_resource, :parent => :inactive_test_association_resource) do
21
+ birthday{Date.today}
22
+ end
23
+
24
+ HashDealer.define(:has_one_object) do
25
+ size("large")
26
+ color("blue")
27
+ end
28
+
29
+ HashDealer.define(:has_many_object) do
30
+ name("name")
31
+ end
@@ -0,0 +1,25 @@
1
+ HashDealer.define(:new_error_resource) do
2
+ attributes({
3
+ :protected => [:id],
4
+ :public => [:name, :age],
5
+ })
6
+ end
7
+
8
+ HashDealer.define(:error_resource) do
9
+ name("Name")
10
+ age("age")
11
+ end
12
+
13
+ HashDealer.define(:error_resource_errors) do
14
+ errors({
15
+ :name => ["must not be empty"],
16
+ :age => ["must be a valid integer"]
17
+ })
18
+ end
19
+
20
+ HashDealer.define(:error_resource_full_message_errors) do
21
+ errors([
22
+ "Name cannot be empty",
23
+ "Age must be a valid integer"
24
+ ])
25
+ end
@@ -0,0 +1,7 @@
1
+ HashDealer.define(:new_prefix_model_response) do
2
+
3
+ attributes({
4
+ "public" => ["foreign_key_id", "name"]
5
+ })
6
+
7
+ end
@@ -0,0 +1,38 @@
1
+ HashDealer.define(:new_test_object) do
2
+ attributes({
3
+ :protected => [:id],
4
+ :public => [:name, :age, :is_active, [:bday, :date], [:roles, :array]]
5
+ })
6
+ scopes({
7
+ :active => {:active => :opt},
8
+ :paginate => {:per_page => :opt, :current_page => :opt}
9
+ })
10
+ associations({
11
+ :has_many => {:has_many_objects => {}},
12
+ :belongs_to => {:belongs_to_object => {}, :custom_name => {:class_name => "BelongsToObject"}},
13
+ :has_one => {:has_one_object => {}},
14
+ })
15
+ end
16
+
17
+ HashDealer.define(:test_resource) do
18
+ name("name")
19
+ age("age")
20
+ end
21
+
22
+ HashDealer.define(:test_resource_with_roles) do
23
+ name("name")
24
+ age("age")
25
+ roles([])
26
+ end
27
+
28
+ HashDealer.define(:test_resource_with_proxies, :parent => :test_resource) do
29
+ has_one_object{HashDealer.roll(:has_one_object)}
30
+ has_many_objects{(0..4).to_a.collect{HashDealer.roll(:has_many_object)}}
31
+ end
32
+
33
+ HashDealer.define(:test_resource_errors) do
34
+ errors({
35
+ :name => ["can't be blank"],
36
+ :age => ["must be a valid number"]
37
+ })
38
+ end
@@ -0,0 +1,72 @@
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 PrefixModel < ApiResource::Base
35
+ self.prefix = "/foreign/:foreign_key_id/"
36
+ end
37
+
38
+ class ScopeResource < ApiResource::Base
39
+
40
+ end
41
+
42
+ class ErrorFullMessageResource < ApiResource::Base
43
+
44
+ end
45
+
46
+ class TestThrough < ApiResource::Base
47
+
48
+ end
49
+
50
+ module TestMod
51
+
52
+ module InnerMod
53
+
54
+ class InnerClass < ApiResource::Base
55
+
56
+ end
57
+
58
+ end
59
+
60
+ class TestClass < ApiResource::Base
61
+
62
+ end
63
+
64
+ class TestAssociation < ApiResource::Base
65
+
66
+ end
67
+
68
+ class TestResource < ApiResource::Base
69
+
70
+ end
71
+
72
+ end
data/spec/tmp/DIR ADDED
File without changes
metadata CHANGED
@@ -1,11 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ethan Langevin
9
+ - Dan Langevin
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
@@ -413,16 +414,131 @@ dependencies:
413
414
  version: '0'
414
415
  description: A replacement for ActiveResource for RESTful APIs that handles associated
415
416
  object and multiple data sources
416
- email: ejl6266@gmail.com
417
+ email: dan.langevin@lifebooker.com
417
418
  executables: []
418
419
  extensions: []
419
420
  extra_rdoc_files:
420
421
  - LICENSE.txt
421
422
  - README.rdoc
422
423
  files:
424
+ - api_resource.gemspec
425
+ - coverage/assets/0.5.3/app.js
426
+ - coverage/assets/0.5.3/fancybox/blank.gif
427
+ - coverage/assets/0.5.3/fancybox/fancy_close.png
428
+ - coverage/assets/0.5.3/fancybox/fancy_loading.png
429
+ - coverage/assets/0.5.3/fancybox/fancy_nav_left.png
430
+ - coverage/assets/0.5.3/fancybox/fancy_nav_right.png
431
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_e.png
432
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_n.png
433
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png
434
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png
435
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_s.png
436
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_se.png
437
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png
438
+ - coverage/assets/0.5.3/fancybox/fancy_shadow_w.png
439
+ - coverage/assets/0.5.3/fancybox/fancy_title_left.png
440
+ - coverage/assets/0.5.3/fancybox/fancy_title_main.png
441
+ - coverage/assets/0.5.3/fancybox/fancy_title_over.png
442
+ - coverage/assets/0.5.3/fancybox/fancy_title_right.png
443
+ - coverage/assets/0.5.3/fancybox/fancybox-x.png
444
+ - coverage/assets/0.5.3/fancybox/fancybox-y.png
445
+ - coverage/assets/0.5.3/fancybox/fancybox.png
446
+ - coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css
447
+ - coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js
448
+ - coverage/assets/0.5.3/favicon_green.png
449
+ - coverage/assets/0.5.3/favicon_red.png
450
+ - coverage/assets/0.5.3/favicon_yellow.png
451
+ - coverage/assets/0.5.3/highlight.css
452
+ - coverage/assets/0.5.3/highlight.pack.js
453
+ - coverage/assets/0.5.3/jquery-1.6.2.min.js
454
+ - coverage/assets/0.5.3/jquery.dataTables.min.js
455
+ - coverage/assets/0.5.3/jquery.timeago.js
456
+ - coverage/assets/0.5.3/jquery.url.js
457
+ - coverage/assets/0.5.3/loading.gif
458
+ - coverage/assets/0.5.3/magnify.png
459
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
460
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
461
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
462
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
463
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png
464
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
465
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
466
+ - coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
467
+ - coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png
468
+ - coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png
469
+ - coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png
470
+ - coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png
471
+ - coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png
472
+ - coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css
473
+ - coverage/assets/0.5.3/stylesheet.css
474
+ - coverage/index.html
475
+ - Gemfile
476
+ - Gemfile.lock
477
+ - Guardfile
478
+ - lib/api_resource/association_activation.rb
479
+ - lib/api_resource/associations/association_proxy.rb
480
+ - lib/api_resource/associations/belongs_to_remote_object_proxy.rb
481
+ - lib/api_resource/associations/dynamic_resource_scope.rb
482
+ - lib/api_resource/associations/generic_scope.rb
483
+ - lib/api_resource/associations/has_many_remote_object_proxy.rb
484
+ - lib/api_resource/associations/has_many_through_remote_object_proxy.rb
485
+ - lib/api_resource/associations/has_one_remote_object_proxy.rb
486
+ - lib/api_resource/associations/multi_argument_resource_scope.rb
487
+ - lib/api_resource/associations/multi_object_proxy.rb
488
+ - lib/api_resource/associations/related_object_hash.rb
489
+ - lib/api_resource/associations/relation_scope.rb
490
+ - lib/api_resource/associations/resource_scope.rb
491
+ - lib/api_resource/associations/scope.rb
492
+ - lib/api_resource/associations/single_object_proxy.rb
493
+ - lib/api_resource/associations.rb
494
+ - lib/api_resource/attributes.rb
495
+ - lib/api_resource/base.rb
496
+ - lib/api_resource/callbacks.rb
497
+ - lib/api_resource/connection.rb
498
+ - lib/api_resource/core_extensions.rb
499
+ - lib/api_resource/custom_methods.rb
500
+ - lib/api_resource/decorators/caching_decorator.rb
501
+ - lib/api_resource/decorators.rb
502
+ - lib/api_resource/exceptions.rb
503
+ - lib/api_resource/formats/json_format.rb
504
+ - lib/api_resource/formats/xml_format.rb
505
+ - lib/api_resource/formats.rb
506
+ - lib/api_resource/local.rb
507
+ - lib/api_resource/log_subscriber.rb
508
+ - lib/api_resource/mocks.rb
509
+ - lib/api_resource/model_errors.rb
510
+ - lib/api_resource/observing.rb
511
+ - lib/api_resource/railtie.rb
512
+ - lib/api_resource/scopes.rb
513
+ - lib/api_resource.rb
423
514
  - LICENSE.txt
515
+ - nohup.out
516
+ - Rakefile
424
517
  - README.rdoc
425
- homepage: http://github.com/ejlangev/resource
518
+ - spec/lib/api_resource_spec.rb
519
+ - spec/lib/associations_spec.rb
520
+ - spec/lib/attributes_spec.rb
521
+ - spec/lib/base_spec.rb
522
+ - spec/lib/callbacks_spec.rb
523
+ - spec/lib/connection_spec.rb
524
+ - spec/lib/local_spec.rb
525
+ - spec/lib/mocks_spec.rb
526
+ - spec/lib/model_errors_spec.rb
527
+ - spec/lib/prefixes_spec.rb
528
+ - spec/spec_helper.rb
529
+ - spec/support/mocks/association_mocks.rb
530
+ - spec/support/mocks/error_resource_mocks.rb
531
+ - spec/support/mocks/prefix_model_mocks.rb
532
+ - spec/support/mocks/test_resource_mocks.rb
533
+ - spec/support/requests/association_requests.rb
534
+ - spec/support/requests/error_resource_requests.rb
535
+ - spec/support/requests/prefix_model_requests.rb
536
+ - spec/support/requests/test_resource_requests.rb
537
+ - spec/support/test_resource.rb
538
+ - spec/tmp/api_resource_test_db.sqlite
539
+ - spec/tmp/DIR
540
+ - VERSION
541
+ homepage: http://github.com/LifebookerInc/api_resource
426
542
  licenses:
427
543
  - MIT
428
544
  post_install_message: