api_resource 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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: