reviewed 0.1.2 → 0.1.4

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 (86) hide show
  1. data/README.md +12 -5
  2. data/lib/faraday/api_key.rb +14 -0
  3. data/lib/faraday/errors.rb +14 -0
  4. data/lib/reviewed/article.rb +3 -1
  5. data/lib/reviewed/award.rb +4 -0
  6. data/lib/reviewed/base.rb +23 -11
  7. data/lib/reviewed/client.rb +47 -26
  8. data/lib/reviewed/collection.rb +8 -8
  9. data/lib/reviewed/product.rb +2 -0
  10. data/lib/reviewed/request.rb +43 -0
  11. data/lib/reviewed/version.rb +1 -1
  12. data/lib/reviewed.rb +13 -20
  13. data/reviewed.gemspec +1 -0
  14. data/spec/article_spec.rb +21 -21
  15. data/spec/award_spec.rb +4 -0
  16. data/spec/base_spec.rb +23 -49
  17. data/spec/client_spec.rb +97 -27
  18. data/spec/collection_spec.rb +6 -4
  19. data/spec/faraday/api_key_spec.rb +42 -0
  20. data/spec/faraday/errors_spec.rb +73 -0
  21. data/spec/fixtures/vcr/Reviewed_Article/associations/attachments/does_not_have_any_matching_attachments.yml +601 -0
  22. data/spec/fixtures/vcr/Reviewed_Article/associations/attachments/finds_attachments_by_tag.yml +601 -0
  23. data/spec/fixtures/vcr/Reviewed_Article/associations/attachments/has_many_attachments.yml +601 -0
  24. data/spec/fixtures/vcr/Reviewed_Article/associations/attachments/returns_all_attachments.yml +601 -0
  25. data/spec/fixtures/vcr/Reviewed_Article/associations/attachments/returns_attachments_of_the_correct_class.yml +601 -0
  26. data/spec/fixtures/vcr/Reviewed_Article/associations/pages/has_many_pages.yml +601 -0
  27. data/spec/fixtures/vcr/Reviewed_Article/associations/products/has_many_products.yml +582 -0
  28. data/spec/fixtures/vcr/Reviewed_Article/associations/products/returns_products_of_the_correct_class.yml +601 -0
  29. data/spec/fixtures/vcr/Reviewed_Article/find_page/finds_a_page_with_a_matching_slug.yml +784 -0
  30. data/spec/fixtures/vcr/Reviewed_Article/primary_product/returns_a_product_of_the_correct_class.yml +1199 -0
  31. data/spec/fixtures/vcr/Reviewed_Article/primary_product/returns_nil_if_does_not_respond_to_products.yml +1199 -0
  32. data/spec/fixtures/vcr/Reviewed_Article/primary_product/returns_the_primary_product.yml +1199 -0
  33. data/spec/fixtures/vcr/Reviewed_Client/_perform/request_params/not_set/has_nil_query_params.yml +254 -0
  34. data/spec/fixtures/vcr/Reviewed_Client/_perform/request_params/set/merges_quest_params.yml +98 -0
  35. data/spec/fixtures/vcr/Reviewed_Collection/collection_data/fetches_the_first_page_by_default.yml +183 -0
  36. data/spec/fixtures/vcr/Reviewed_Collection/collection_data/is_enumerable.yml +183 -0
  37. data/spec/fixtures/vcr/Reviewed_Collection/next_page/fetches_the_next_page_of_results.yml +310 -0
  38. data/spec/fixtures/vcr/Reviewed_Collection/page_attributes_pagination_/indicates_if_the_page_number_is_out_of_bounds.yml +183 -0
  39. data/spec/fixtures/vcr/Reviewed_Collection/page_attributes_pagination_/indicates_whether_this_is_the_first_or_last_page.yml +183 -0
  40. data/spec/fixtures/vcr/Reviewed_Collection/page_attributes_pagination_/returns_the_limit_value_max_per_page_.yml +183 -0
  41. data/spec/fixtures/vcr/Reviewed_Collection/page_attributes_pagination_/returns_the_number_of_entries_on_the_current_page.yml +183 -0
  42. data/spec/fixtures/vcr/Reviewed_Collection/page_attributes_pagination_/returns_the_offset.yml +183 -0
  43. data/spec/fixtures/vcr/Reviewed_Collection/page_attributes_pagination_/returns_the_total_item_count.yml +183 -0
  44. data/spec/fixtures/vcr/Reviewed_Collection/page_attributes_pagination_/returns_the_total_number_of_pages.yml +183 -0
  45. data/spec/fixtures/vcr/Reviewed_Collection/previous_page/fetches_the_previous_page_of_results.yml +490 -0
  46. data/spec/fixtures/vcr/Reviewed_Collection/previous_page/returns_nil_if_there_is_no_previous_page.yml +183 -0
  47. data/spec/fixtures/vcr/Reviewed_Product/associations/attachments/does_not_have_any_matching_attachments.yml +116 -0
  48. data/spec/fixtures/vcr/Reviewed_Product/associations/attachments/finds_attachments_by_tag.yml +116 -0
  49. data/spec/fixtures/vcr/Reviewed_Product/associations/attachments/has_many_attachments.yml +119 -0
  50. data/spec/fixtures/vcr/Reviewed_Product/associations/attachments/returns_all_attachments.yml +116 -0
  51. data/spec/fixtures/vcr/Reviewed_Product/associations/attachments/returns_attachments_of_the_correct_class.yml +119 -0
  52. data/spec/fixtures/vcr/Reviewed_Product/manufacturer_specs/has_many_manufacturer_specs.yml +116 -0
  53. data/spec/fixtures/vcr/Reviewed_Product/manufacturer_specs/returns_attachments_of_the_correct_class.yml +116 -0
  54. data/spec/fixtures/vcr/Reviewed_Request/_where/filters_collections_using_other_supported_options.yml +110 -0
  55. data/spec/fixtures/vcr/Reviewed_Request/_where/returns_a_collection.yml +254 -0
  56. data/spec/fixtures/vcr/Reviewed_Request/_where/returns_an_empty_set_if_no_matching_data_was_found.yml +86 -0
  57. data/spec/fixtures/vcr/Reviewed_Request/_where/returns_the_appropriate_page_of_results.yml +288 -0
  58. data/spec/fixtures/vcr/Reviewed_Request/collection_from_response/returns_a_collection_object.yml +254 -0
  59. data/spec/fixtures/vcr/Reviewed_Request/collection_from_response/returns_objects_of_the_correct_class.yml +254 -0
  60. data/spec/fixtures/vcr/Reviewed_Request/object_from_response/returns_an_object_of_the_correct_class.yml +601 -0
  61. data/spec/product_spec.rb +8 -6
  62. data/spec/request_spec.rb +117 -0
  63. data/spec/reviewed_spec.rb +5 -31
  64. data/spec/spec_helper.rb +6 -5
  65. data/spec/website_spec.rb +1 -2
  66. metadata +111 -40
  67. data/lib/faraday/global_params.rb +0 -21
  68. data/lib/reviewed/configurable.rb +0 -26
  69. data/lib/reviewed/utils.rb +0 -21
  70. data/spec/configurable_spec.rb +0 -44
  71. data/spec/faraday/global_params_spec.rb +0 -33
  72. data/spec/fixtures/vcr/article/attachments.yml +0 -1065
  73. data/spec/fixtures/vcr/article/find_page.yml +0 -383
  74. data/spec/fixtures/vcr/article/products.yml +0 -1065
  75. data/spec/fixtures/vcr/base/article/find.yml +0 -14825
  76. data/spec/fixtures/vcr/base/where_collection.yml +0 -1203
  77. data/spec/fixtures/vcr/collection/products.yml +0 -922
  78. data/spec/fixtures/vcr/faraday/global_params/request.yml +0 -109
  79. data/spec/fixtures/vcr/faraday/global_params/request_no_params.yml +0 -885
  80. data/spec/fixtures/vcr/faraday/global_params/request_params.yml +0 -405
  81. data/spec/fixtures/vcr/product/attachments.yml +0 -221
  82. data/spec/fixtures/vcr/product/manufacturer_specs.yml +0 -194
  83. data/spec/fixtures/vcr/utils/collection.yml +0 -644
  84. data/spec/fixtures/vcr/utils/object.yml +0 -7658
  85. data/spec/fixtures/vcr/utils.yml +0 -7961
  86. data/spec/utils_spec.rb +0 -33
@@ -1,194 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://the-guide-staging.herokuapp.com/api/v1/products/minden-master-ii
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- X-Reviewed-Authorization:
11
- - '1234567890'
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - ! '*/*'
16
- User-Agent:
17
- - Ruby
18
- response:
19
- status:
20
- code: 200
21
- message: !binary |-
22
- T0s=
23
- headers:
24
- !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHM=":
25
- - !binary |-
26
- dHJ1ZQ==
27
- !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycw==":
28
- - !binary |-
29
- eC1wYWdpbmF0aW9uLCB4LXJlcXVlc3RlZC13aXRoLCB4LXJlcXVlc3RlZC1i
30
- eSwgeC1yZXZpZXdlZC1hdXRob3JpemF0aW9uLCBDb250ZW50LVR5cGU=
31
- !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcw==":
32
- - !binary |-
33
- T1BUSU9OUywgR0VULCBQT1NULCBQVVQsIERFTEVURQ==
34
- !binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
35
- - !binary |-
36
- Kg==
37
- !binary "QWNjZXNzLUNvbnRyb2wtTWF4LUFnZQ==":
38
- - !binary |-
39
- MTAwMA==
40
- !binary "Q2FjaGUtQ29udHJvbA==":
41
- - !binary |-
42
- bm8tY2FjaGUsIG5vLXN0b3Jl
43
- !binary "Q29udGVudC1FbmNvZGluZw==":
44
- - !binary |-
45
- Z3ppcA==
46
- !binary "Q29udGVudC1UeXBl":
47
- - !binary |-
48
- YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOA==
49
- !binary "RGF0ZQ==":
50
- - !binary |-
51
- TW9uLCAyNiBOb3YgMjAxMiAxOTozMDoyMiBHTVQ=
52
- !binary "TGFzdC1Nb2RpZmllZA==":
53
- - !binary |-
54
- RnJpLCAwOSBOb3YgMjAxMiAyMDoxNjo0MCBHTVQ=
55
- !binary "U2VydmVy":
56
- - !binary |-
57
- dGhpbiAxLjUuMCBjb2RlbmFtZSBLbmlmZQ==
58
- !binary "U3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eQ==":
59
- - !binary |-
60
- bWF4LWFnZT0zMTUzNjAwMA==
61
- !binary "VmFyeQ==":
62
- - !binary |-
63
- QWNjZXB0LUVuY29kaW5n
64
- !binary "WC1SYWNrLUNhY2hl":
65
- - !binary |-
66
- bWlzcw==
67
- !binary "WC1SYXRlLUxpbWl0":
68
- - !binary |-
69
- OTk5OTE=
70
- !binary "WC1SZXF1ZXN0LUlk":
71
- - !binary |-
72
- NDc3MGY3NjUwYjNkYWY1YzQyNzgzMmI4Zjk2YmYzMzI=
73
- !binary "WC1SdW50aW1l":
74
- - !binary |-
75
- MC44Nzk3MDY=
76
- !binary "WC1VYS1Db21wYXRpYmxl":
77
- - !binary |-
78
- SUU9RWRnZSxjaHJvbWU9MQ==
79
- !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
80
- - !binary |-
81
- Y2h1bmtlZA==
82
- !binary "Q29ubmVjdGlvbg==":
83
- - !binary |-
84
- a2VlcC1hbGl2ZQ==
85
- body:
86
- encoding: ASCII-8BIT
87
- string: !binary |-
88
- H4sIAKhknVAAA8RWS2/bOBD+K4au6wdJvSxd9rJAN4cAiyKnLRbC8CGHrV4g
89
- qWTTIP+9Q8l25LZWUCBQfbA9nE+cb16aeQ60DPIgJpkIMwDFBCQqyeJYCJqJ
90
- JFgHwihwShbgEMcIZRsSb2h8x2hOWU7jfxHTd/I7DKUbkt0xktMkj4jHNFAr
91
- 1N7qRqpmdQvWKbO6uUGNrfoDaupBs6kHzUZr1BTuqfMP/d3WKs8/GF1VFn/B
92
- os6rbJB/Cv4xbQeNCv5bB51pZS9cYcDpBu9s+qpaBwaaL4P4HLjWQTU9H/+/
93
- rIPami7IozTbknUAxmlRqULLwQJGR9Is5gmRKpU8SwVJIsm4N/mouNVuChVM
94
- KTpCSxHGBD8cBnY9r7S9L9pmGsn9Hc3yMMoJ+YMQ/B7CKU4cO6OFKg4GOFem
95
- GHKFANNzPC/OqWMlyS4sRlGJMI4eyglKlekFiu3T82U+Om/d92Mp+DTv75iv
96
- gzxMr5fCJeZYCqilK0zmakjs6uPIA31WptbW6raxnhUaRV7O9OrE4CSNtk6S
97
- VNaZ9mkUX17OqfF5mfr2s+zM+xbl8bxvYc4yrPSJb2Ot3jRluxVt7Z81WHfB
98
- YTjWr8eilQP84827OY6VVkPTlyBcb7BobKeEjwGeg3Mg7mvVuMugyCSC/RiU
99
- VNCU0GQv2dWgXPb1L/f+JkzI7V+bB2i0e9p+7g7HZkZAqSvlJTgMzTRCfOs8
100
- KHMOi43J/zFB9L1zXb7bWYRje2+NetDqUcntxMutDbdQw9e2gUfrQ757Ve5C
101
- zqSkkVSJoDwDXkIJRJaxwrcAj6MU20WknMvdaLG4Tt9SRNCFSR1tztFiCGEL
102
- 0zranKMVEmRO2aK0jjbnaOHLANO8dGUNNudoJQiJFqZ1tDlHK4uWp3W0+Rat
103
- cOGSP9p8ixaly9NCmzO0WqORhN+IlqN1jc3LMMiE0Z3TfkMa9x+cLeBf+uP4
104
- 9CTtb2W5HmZUYfVXnFcsi8O9n+GNw8tPy6qu4aB2nzs1+PRuM31Y5i63tJ/v
105
- c3MLO83ZlU3mR8zF0P5+TT9tNGOWqvbQFhP5vTY4A4+FFa3xO9wzylZAhayn
106
- R7jqK+CVZ9o3Z+H1/M/T5e/D6RsAAAD//wMAIVflnjANAAA=
107
- http_version:
108
- recorded_at: Mon, 26 Nov 2012 19:30:23 GMT
109
- - request:
110
- method: get
111
- uri: https://the-guide-staging.herokuapp.com/api/v1/products/minden-master-ii?
112
- body:
113
- encoding: US-ASCII
114
- string: ''
115
- headers:
116
- X-Reviewed-Authorization:
117
- - '1234567890'
118
- Accept-Encoding:
119
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
120
- Accept:
121
- - ! '*/*'
122
- User-Agent:
123
- - Ruby
124
- response:
125
- status:
126
- code: 200
127
- message: OK
128
- headers:
129
- Access-Control-Allow-Credentials:
130
- - 'true'
131
- Access-Control-Allow-Headers:
132
- - x-pagination, x-requested-with, x-requested-by, x-reviewed-authorization,
133
- Content-Type
134
- Access-Control-Allow-Methods:
135
- - OPTIONS, GET, POST, PUT, DELETE
136
- Access-Control-Allow-Origin:
137
- - ! '*'
138
- Access-Control-Max-Age:
139
- - '1000'
140
- Cache-Control:
141
- - no-cache, no-store
142
- Content-Encoding:
143
- - gzip
144
- Content-Type:
145
- - application/json; charset=utf-8
146
- Date:
147
- - Tue, 27 Nov 2012 17:36:53 GMT
148
- Last-Modified:
149
- - Fri, 09 Nov 2012 20:16:40 GMT
150
- Server:
151
- - thin 1.5.0 codename Knife
152
- Strict-Transport-Security:
153
- - max-age=31536000
154
- Vary:
155
- - Accept-Encoding
156
- X-Rack-Cache:
157
- - miss
158
- X-Rate-Limit:
159
- - '99885'
160
- X-Request-Id:
161
- - 1b9954b6fed5fe1cbed93e9907b2dc5e
162
- X-Runtime:
163
- - '0.351144'
164
- X-Ua-Compatible:
165
- - IE=Edge,chrome=1
166
- Transfer-Encoding:
167
- - chunked
168
- Connection:
169
- - keep-alive
170
- body:
171
- encoding: ASCII-8BIT
172
- string: !binary |-
173
- H4sIAKhknVAAA8RWS2/bOBD+K4au6wdJvSxd9rJAN4cAiyKnLRbC8CGHrV4g
174
- qWTTIP+9Q8l25LZWUCBQfbA9nE+cb16aeQ60DPIgJpkIMwDFBCQqyeJYCJqJ
175
- JFgHwihwShbgEMcIZRsSb2h8x2hOWU7jfxHTd/I7DKUbkt0xktMkj4jHNFAr
176
- 1N7qRqpmdQvWKbO6uUGNrfoDaupBs6kHzUZr1BTuqfMP/d3WKs8/GF1VFn/B
177
- os6rbJB/Cv4xbQeNCv5bB51pZS9cYcDpBu9s+qpaBwaaL4P4HLjWQTU9H/+/
178
- rIPami7IozTbknUAxmlRqULLwQJGR9Is5gmRKpU8SwVJIsm4N/mouNVuChVM
179
- KTpCSxHGBD8cBnY9r7S9L9pmGsn9Hc3yMMoJ+YMQ/B7CKU4cO6OFKg4GOFem
180
- GHKFANNzPC/OqWMlyS4sRlGJMI4eyglKlekFiu3T82U+Om/d92Mp+DTv75iv
181
- gzxMr5fCJeZYCqilK0zmakjs6uPIA31WptbW6raxnhUaRV7O9OrE4CSNtk6S
182
- VNaZ9mkUX17OqfF5mfr2s+zM+xbl8bxvYc4yrPSJb2Ot3jRluxVt7Z81WHfB
183
- YTjWr8eilQP84827OY6VVkPTlyBcb7BobKeEjwGeg3Mg7mvVuMugyCSC/RiU
184
- VNCU0GQv2dWgXPb1L/f+JkzI7V+bB2i0e9p+7g7HZkZAqSvlJTgMzTRCfOs8
185
- KHMOi43J/zFB9L1zXb7bWYRje2+NetDqUcntxMutDbdQw9e2gUfrQ757Ve5C
186
- zqSkkVSJoDwDXkIJRJaxwrcAj6MU20WknMvdaLG4Tt9SRNCFSR1tztFiCGEL
187
- 0zranKMVEmRO2aK0jjbnaOHLANO8dGUNNudoJQiJFqZ1tDlHK4uWp3W0+Rat
188
- cOGSP9p8ixaly9NCmzO0WqORhN+IlqN1jc3LMMiE0Z3TfkMa9x+cLeBf+uP4
189
- 9CTtb2W5HmZUYfVXnFcsi8O9n+GNw8tPy6qu4aB2nzs1+PRuM31Y5i63tJ/v
190
- c3MLO83ZlU3mR8zF0P5+TT9tNGOWqvbQFhP5vTY4A4+FFa3xO9wzylZAhayn
191
- R7jqK+CVZ9o3Z+H1/M/T5e/D6RsAAAD//wMAIVflnjANAAA=
192
- http_version:
193
- recorded_at: Tue, 27 Nov 2012 17:36:56 GMT
194
- recorded_with: VCR 2.3.0