contentful 2.12.0 → 2.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (250) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +69 -1
  3. data/README.md +24 -13
  4. data/lib/contentful/array.rb +14 -6
  5. data/lib/contentful/array_like.rb +11 -2
  6. data/lib/contentful/asset.rb +10 -4
  7. data/lib/contentful/base_resource.rb +29 -6
  8. data/lib/contentful/client.rb +4 -3
  9. data/lib/contentful/coercions.rb +1 -4
  10. data/lib/contentful/entry.rb +9 -5
  11. data/lib/contentful/fields_resource.rb +7 -11
  12. data/lib/contentful/includes.rb +74 -0
  13. data/lib/contentful/request.rb +6 -1
  14. data/lib/contentful/resource_builder.rb +15 -12
  15. data/lib/contentful/support.rb +0 -35
  16. data/lib/contentful/version.rb +1 -1
  17. metadata +15 -370
  18. data/.gitignore +0 -7
  19. data/.rspec +0 -1
  20. data/.rubocop.yml +0 -28
  21. data/.rubocop_todo.yml +0 -35
  22. data/.travis.yml +0 -13
  23. data/.yardopts +0 -4
  24. data/Gemfile +0 -9
  25. data/Gemfile.lock +0 -152
  26. data/Guardfile +0 -24
  27. data/RELEASE.md +0 -8
  28. data/Rakefile +0 -33
  29. data/contentful.gemspec +0 -44
  30. data/coverage/.last_run.json +0 -5
  31. data/coverage/.resultset.json +0 -2419
  32. data/coverage/.resultset.json.lock +0 -0
  33. data/coverage/assets/0.10.2/application.css +0 -799
  34. data/coverage/assets/0.10.2/application.js +0 -1707
  35. data/coverage/assets/0.10.2/colorbox/border.png +0 -0
  36. data/coverage/assets/0.10.2/colorbox/controls.png +0 -0
  37. data/coverage/assets/0.10.2/colorbox/loading.gif +0 -0
  38. data/coverage/assets/0.10.2/colorbox/loading_background.png +0 -0
  39. data/coverage/assets/0.10.2/favicon_green.png +0 -0
  40. data/coverage/assets/0.10.2/favicon_red.png +0 -0
  41. data/coverage/assets/0.10.2/favicon_yellow.png +0 -0
  42. data/coverage/assets/0.10.2/loading.gif +0 -0
  43. data/coverage/assets/0.10.2/magnify.png +0 -0
  44. data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  45. data/coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  46. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  47. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  48. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  49. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  50. data/coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  51. data/coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  52. data/coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png +0 -0
  53. data/coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  54. data/coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png +0 -0
  55. data/coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png +0 -0
  56. data/coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  57. data/coverage/index.html +0 -15071
  58. data/doc/Contentful/AccessDenied.html +0 -159
  59. data/doc/Contentful/Array.html +0 -765
  60. data/doc/Contentful/ArrayCoercion.html +0 -242
  61. data/doc/Contentful/ArrayLike.html +0 -625
  62. data/doc/Contentful/Asset.html +0 -487
  63. data/doc/Contentful/BadGateway.html +0 -159
  64. data/doc/Contentful/BadRequest.html +0 -159
  65. data/doc/Contentful/BaseCoercion.html +0 -445
  66. data/doc/Contentful/BaseResource.html +0 -599
  67. data/doc/Contentful/BooleanCoercion.html +0 -242
  68. data/doc/Contentful/Client.html +0 -1740
  69. data/doc/Contentful/ContentType.html +0 -618
  70. data/doc/Contentful/ContentTypeCache.html +0 -428
  71. data/doc/Contentful/DateCoercion.html +0 -244
  72. data/doc/Contentful/DeletedAsset.html +0 -157
  73. data/doc/Contentful/DeletedEntry.html +0 -157
  74. data/doc/Contentful/EmptyFieldError.html +0 -217
  75. data/doc/Contentful/Entry.html +0 -334
  76. data/doc/Contentful/Error.html +0 -410
  77. data/doc/Contentful/Field.html +0 -936
  78. data/doc/Contentful/FieldsResource.html +0 -583
  79. data/doc/Contentful/File.html +0 -218
  80. data/doc/Contentful/FloatCoercion.html +0 -238
  81. data/doc/Contentful/IntegerCoercion.html +0 -238
  82. data/doc/Contentful/Link.html +0 -249
  83. data/doc/Contentful/LinkCoercion.html +0 -158
  84. data/doc/Contentful/Locale.html +0 -537
  85. data/doc/Contentful/Location.html +0 -383
  86. data/doc/Contentful/LocationCoercion.html +0 -238
  87. data/doc/Contentful/NotFound.html +0 -159
  88. data/doc/Contentful/ObjectCoercion.html +0 -238
  89. data/doc/Contentful/RateLimitExceeded.html +0 -346
  90. data/doc/Contentful/Request.html +0 -887
  91. data/doc/Contentful/ResourceBuilder.html +0 -978
  92. data/doc/Contentful/ResourceReferences.html +0 -254
  93. data/doc/Contentful/Response.html +0 -710
  94. data/doc/Contentful/RichTextCoercion.html +0 -238
  95. data/doc/Contentful/ServerError.html +0 -159
  96. data/doc/Contentful/ServiceUnavailable.html +0 -159
  97. data/doc/Contentful/Space.html +0 -393
  98. data/doc/Contentful/StringCoercion.html +0 -242
  99. data/doc/Contentful/StructuredTextCoercion.html +0 -238
  100. data/doc/Contentful/Support.html +0 -788
  101. data/doc/Contentful/SymbolCoercion.html +0 -169
  102. data/doc/Contentful/Sync.html +0 -653
  103. data/doc/Contentful/SyncPage.html +0 -807
  104. data/doc/Contentful/TextCoercion.html +0 -169
  105. data/doc/Contentful/Unauthorized.html +0 -159
  106. data/doc/Contentful/UnparsableJson.html +0 -159
  107. data/doc/Contentful/UnparsableResource.html +0 -135
  108. data/doc/Contentful.html +0 -157
  109. data/doc/_index.html +0 -563
  110. data/doc/class_list.html +0 -51
  111. data/doc/css/common.css +0 -1
  112. data/doc/css/full_list.css +0 -58
  113. data/doc/css/style.css +0 -496
  114. data/doc/file.CHANGELOG.html +0 -729
  115. data/doc/file.LICENSE.html +0 -70
  116. data/doc/file.README.html +0 -925
  117. data/doc/file_list.html +0 -66
  118. data/doc/frames.html +0 -17
  119. data/doc/index.html +0 -925
  120. data/doc/js/app.js +0 -292
  121. data/doc/js/full_list.js +0 -216
  122. data/doc/js/jquery.js +0 -4
  123. data/doc/method_list.html +0 -1171
  124. data/doc/top-level-namespace.html +0 -110
  125. data/examples/custom_classes.rb +0 -39
  126. data/examples/example_queries.rb +0 -26
  127. data/examples/raise_errors.rb +0 -20
  128. data/examples/raw_mode.rb +0 -14
  129. data/spec/array_spec.rb +0 -122
  130. data/spec/asset_spec.rb +0 -192
  131. data/spec/auto_includes_spec.rb +0 -12
  132. data/spec/client_class_spec.rb +0 -86
  133. data/spec/client_configuration_spec.rb +0 -377
  134. data/spec/content_type_spec.rb +0 -49
  135. data/spec/deleted_asset_spec.rb +0 -38
  136. data/spec/deleted_entry_spec.rb +0 -38
  137. data/spec/entry_spec.rb +0 -688
  138. data/spec/error_class_spec.rb +0 -327
  139. data/spec/error_requests_spec.rb +0 -87
  140. data/spec/field_spec.rb +0 -95
  141. data/spec/file_spec.rb +0 -33
  142. data/spec/fixtures/json_responses/400_details_errors_object.json +0 -14
  143. data/spec/fixtures/json_responses/400_details_errors_string.json +0 -12
  144. data/spec/fixtures/json_responses/400_details_string.json +0 -8
  145. data/spec/fixtures/json_responses/403_reasons.json +0 -13
  146. data/spec/fixtures/json_responses/404_details_string.json +0 -8
  147. data/spec/fixtures/json_responses/404_id.json +0 -11
  148. data/spec/fixtures/json_responses/404_sys_type.json +0 -12
  149. data/spec/fixtures/json_responses/404_type.json +0 -10
  150. data/spec/fixtures/json_responses/content_type.json +0 -83
  151. data/spec/fixtures/json_responses/default_400.json +0 -7
  152. data/spec/fixtures/json_responses/default_401.json +0 -7
  153. data/spec/fixtures/json_responses/default_403.json +0 -7
  154. data/spec/fixtures/json_responses/default_404.json +0 -7
  155. data/spec/fixtures/json_responses/default_429.json +0 -7
  156. data/spec/fixtures/json_responses/default_500.json +0 -7
  157. data/spec/fixtures/json_responses/default_502.json +0 -7
  158. data/spec/fixtures/json_responses/default_503.json +0 -7
  159. data/spec/fixtures/json_responses/includes.json +0 -111
  160. data/spec/fixtures/json_responses/link_array.json +0 -43
  161. data/spec/fixtures/json_responses/not_found.json +0 -13
  162. data/spec/fixtures/json_responses/nyancat.json +0 -48
  163. data/spec/fixtures/json_responses/other_error.json +0 -9
  164. data/spec/fixtures/json_responses/other_error_no_details.json +0 -8
  165. data/spec/fixtures/json_responses/other_error_no_message.json +0 -8
  166. data/spec/fixtures/json_responses/other_error_no_request_id.json +0 -8
  167. data/spec/fixtures/json_responses/other_error_nothing.json +0 -6
  168. data/spec/fixtures/json_responses/self_link.json +0 -82
  169. data/spec/fixtures/json_responses/unparsable.json +0 -13
  170. data/spec/fixtures/vcr_cassettes/array/marshal_custom_classes.yml +0 -159
  171. data/spec/fixtures/vcr_cassettes/array/nested_resources.yml +0 -159
  172. data/spec/fixtures/vcr_cassettes/array.yml +0 -288
  173. data/spec/fixtures/vcr_cassettes/arrayField.yml +0 -87
  174. data/spec/fixtures/vcr_cassettes/array_page_1.yml +0 -106
  175. data/spec/fixtures/vcr_cassettes/array_page_2.yml +0 -73
  176. data/spec/fixtures/vcr_cassettes/asset/select_empty_array.yml +0 -104
  177. data/spec/fixtures/vcr_cassettes/asset/select_no_sys.yml +0 -119
  178. data/spec/fixtures/vcr_cassettes/asset/select_one_field.yml +0 -97
  179. data/spec/fixtures/vcr_cassettes/asset/select_only_sys.yml +0 -88
  180. data/spec/fixtures/vcr_cassettes/asset.yml +0 -96
  181. data/spec/fixtures/vcr_cassettes/assets/issues_129.yml +0 -90
  182. data/spec/fixtures/vcr_cassettes/assets/issues_jekyll_46.yml +0 -115
  183. data/spec/fixtures/vcr_cassettes/bad_request.yml +0 -76
  184. data/spec/fixtures/vcr_cassettes/content_type.yml +0 -147
  185. data/spec/fixtures/vcr_cassettes/entries/empty_fields.yml +0 -246
  186. data/spec/fixtures/vcr_cassettes/entries/issue_117.yml +0 -201
  187. data/spec/fixtures/vcr_cassettes/entries/issue_125.yml +0 -198
  188. data/spec/fixtures/vcr_cassettes/entries/rich_text.yml +0 -1707
  189. data/spec/fixtures/vcr_cassettes/entries/rich_text_hydration_issue.yml +0 -460
  190. data/spec/fixtures/vcr_cassettes/entries/rich_text_nested_fields.yml +0 -653
  191. data/spec/fixtures/vcr_cassettes/entries/rich_text_unresolved_relationships.yml +0 -983
  192. data/spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml +0 -159
  193. data/spec/fixtures/vcr_cassettes/entries/unresolvable_filter_deeply_nested.yml +0 -167
  194. data/spec/fixtures/vcr_cassettes/entries.yml +0 -561
  195. data/spec/fixtures/vcr_cassettes/entry/custom_resource.yml +0 -168
  196. data/spec/fixtures/vcr_cassettes/entry/include_resolution.yml +0 -101
  197. data/spec/fixtures/vcr_cassettes/entry/include_resolution_uniques.yml +0 -81
  198. data/spec/fixtures/vcr_cassettes/entry/json_objects.yml +0 -88
  199. data/spec/fixtures/vcr_cassettes/entry/json_objects_client.yml +0 -86
  200. data/spec/fixtures/vcr_cassettes/entry/marshal_138.yml +0 -159
  201. data/spec/fixtures/vcr_cassettes/entry/marshal_unpublished.yml +0 -303
  202. data/spec/fixtures/vcr_cassettes/entry/marshall.yml +0 -293
  203. data/spec/fixtures/vcr_cassettes/entry/raw.yml +0 -201
  204. data/spec/fixtures/vcr_cassettes/entry/search_link_to_asset.yml +0 -81
  205. data/spec/fixtures/vcr_cassettes/entry/search_link_to_entry.yml +0 -81
  206. data/spec/fixtures/vcr_cassettes/entry/search_link_to_entry_with_custom_query.yml +0 -115
  207. data/spec/fixtures/vcr_cassettes/entry/select_empty_array.yml +0 -111
  208. data/spec/fixtures/vcr_cassettes/entry/select_no_sys.yml +0 -102
  209. data/spec/fixtures/vcr_cassettes/entry/select_one_field.yml +0 -76
  210. data/spec/fixtures/vcr_cassettes/entry/select_one_field_proper.yml +0 -114
  211. data/spec/fixtures/vcr_cassettes/entry/select_only_sys.yml +0 -111
  212. data/spec/fixtures/vcr_cassettes/entry.yml +0 -102
  213. data/spec/fixtures/vcr_cassettes/entry_cache.yml +0 -288
  214. data/spec/fixtures/vcr_cassettes/entry_locales.yml +0 -104
  215. data/spec/fixtures/vcr_cassettes/field.yml +0 -147
  216. data/spec/fixtures/vcr_cassettes/human.yml +0 -118
  217. data/spec/fixtures/vcr_cassettes/linkField.yml +0 -83
  218. data/spec/fixtures/vcr_cassettes/locale.yml +0 -83
  219. data/spec/fixtures/vcr_cassettes/locale_from_environment.yml +0 -121
  220. data/spec/fixtures/vcr_cassettes/location.yml +0 -193
  221. data/spec/fixtures/vcr_cassettes/multi_locale_array_reference.yml +0 -196
  222. data/spec/fixtures/vcr_cassettes/multi_locale_reference.yml +0 -214
  223. data/spec/fixtures/vcr_cassettes/not_found.yml +0 -76
  224. data/spec/fixtures/vcr_cassettes/nyancat.yml +0 -102
  225. data/spec/fixtures/vcr_cassettes/ratelimit.yml +0 -64
  226. data/spec/fixtures/vcr_cassettes/ratelimit_retry.yml +0 -294
  227. data/spec/fixtures/vcr_cassettes/reloaded_entry.yml +0 -102
  228. data/spec/fixtures/vcr_cassettes/space.yml +0 -83
  229. data/spec/fixtures/vcr_cassettes/sync_deleted_asset.yml +0 -174
  230. data/spec/fixtures/vcr_cassettes/sync_deleted_entry.yml +0 -89
  231. data/spec/fixtures/vcr_cassettes/sync_deletion.yml +0 -191
  232. data/spec/fixtures/vcr_cassettes/sync_environment.yml +0 -81
  233. data/spec/fixtures/vcr_cassettes/sync_page.yml +0 -637
  234. data/spec/fixtures/vcr_cassettes/sync_page_2.yml +0 -71
  235. data/spec/fixtures/vcr_cassettes/sync_page_short.yml +0 -106
  236. data/spec/fixtures/vcr_cassettes/unauthorized.yml +0 -64
  237. data/spec/fixtures/vcr_cassettes/unavailable.yml +0 -76
  238. data/spec/link_spec.rb +0 -50
  239. data/spec/locale_spec.rb +0 -37
  240. data/spec/location_spec.rb +0 -25
  241. data/spec/request_spec.rb +0 -57
  242. data/spec/resource_building_spec.rb +0 -31
  243. data/spec/response_spec.rb +0 -62
  244. data/spec/space_spec.rb +0 -31
  245. data/spec/spec_helper.rb +0 -14
  246. data/spec/support/client.rb +0 -6
  247. data/spec/support/json_responses.rb +0 -18
  248. data/spec/support/vcr.rb +0 -16
  249. data/spec/sync_page_spec.rb +0 -103
  250. data/spec/sync_spec.rb +0 -180
@@ -1,106 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/sync?initial=true
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - RubyContentfulGem/0.1.3
12
- Authorization:
13
- - Bearer b4c0n73n7fu1
14
- Content-Type:
15
- - application/vnd.contentful.delivery.v1+json
16
- Host:
17
- - cdn.contentful.com
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- headers:
23
- Date:
24
- - Fri, 25 Apr 2014 13:31:17 GMT
25
- Server:
26
- - nginx/1.1.19
27
- Access-Control-Allow-Headers:
28
- - Accept,Accept-Language,Authorization,Cache-Control,Content-Length,Content-Range,Content-Type,DNT,Destination,Expires,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Last-Modified,Origin,Pragma,Range,User-Agent,X-Http-Method-Override,X-Mx-ReqToken,X-Requested-With,X-Contentful-Version,X-Contentful-Content-Type,X-Contentful-Organization
29
- Access-Control-Allow-Methods:
30
- - GET,HEAD,OPTIONS
31
- Access-Control-Allow-Origin:
32
- - "*"
33
- Access-Control-Max-Age:
34
- - '86400'
35
- Cache-Control:
36
- - max-age=0
37
- Content-Type:
38
- - application/vnd.contentful.delivery.v1+json
39
- Etag:
40
- - '"382e4781b902b58d2edf3f10067167c7"'
41
- X-Contentful-Request-Id:
42
- - f1c-737770542
43
- Content-Length:
44
- - '300'
45
- Accept-Ranges:
46
- - bytes
47
- Via:
48
- - 1.1 varnish
49
- Age:
50
- - '0'
51
- X-Served-By:
52
- - cache-fra1229-FRA
53
- X-Cache:
54
- - MISS
55
- X-Cache-Hits:
56
- - '0'
57
- Vary:
58
- - Accept-Encoding
59
- body:
60
- encoding: UTF-8
61
- string: |
62
- {
63
- "sys": {
64
- "type": "Array"
65
- },
66
- "items": [
67
- {
68
- "sys": {
69
- "space": {
70
- "sys": {
71
- "type": "Link",
72
- "linkType": "Space",
73
- "id": "cfexampleapi"
74
- }
75
- },
76
- "type": "Entry",
77
- "contentType": {
78
- "sys": {
79
- "type": "Link",
80
- "linkType": "ContentType",
81
- "id": "1t9IbcfdCk6m04uISSsaIK"
82
- }
83
- },
84
- "id": "5ETMRzkl9KM4omyMwKAOki",
85
- "revision": 2,
86
- "createdAt": "2014-02-21T13:42:57.752Z",
87
- "updatedAt": "2014-04-16T12:44:02.691Z"
88
- },
89
- "fields": {
90
- "name": {
91
- "en-US": "London"
92
- },
93
- "center": {
94
- "en-US": {
95
- "lat": 51.508515,
96
- "lon": -0.12548719999995228
97
- }
98
- }
99
- }
100
- }
101
- ],
102
- "nextSyncUrl": "https://cdn.contentful.com/spaces/cfexampleapi/environments/master/sync?sync_token=w5ZGw6JFwqZmVcKsE8Kow4grw45QdybCr8Okw6AYwqbDksO3ehvDpUPCgcKsKXbCiAwPC8K2w4LDvsOkw6nCjhPDpcOQADElWsOoU8KGR3HCtsOAwqd6wp_Dulp8w6LDsF_CtsK7Kk05wrMvwrLClMOgG2_Dn2sGPg"
103
- }
104
- http_version:
105
- recorded_at: Fri, 25 Apr 2014 13:31:18 GMT
106
- recorded_with: VCR 2.9.0
@@ -1,64 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://cdn.contentful.com/spaces/wrong/environments/master/entries?sys.id=nyancat
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - RubyContentfulGem/0.1.1
12
- Authorization:
13
- - Bearer credentials
14
- Content-Type:
15
- - application/vnd.contentful.delivery.v1+json
16
- Host:
17
- - cdn.contentful.com
18
- response:
19
- status:
20
- code: 401
21
- message: Unauthorized
22
- headers:
23
- Date:
24
- - Wed, 16 Apr 2014 09:00:24 GMT
25
- Server:
26
- - nginx/1.1.19
27
- Access-Control-Allow-Headers:
28
- - Accept,Accept-Language,Authorization,Cache-Control,Content-Length,Content-Range,Content-Type,DNT,Destination,Expires,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Last-Modified,Origin,Pragma,Range,User-Agent,X-Http-Method-Override,X-Mx-ReqToken,X-Requested-With,X-Contentful-Version,X-Contentful-Content-Type,X-Contentful-Organization
29
- Access-Control-Allow-Methods:
30
- - GET,HEAD,OPTIONS
31
- Access-Control-Allow-Origin:
32
- - "*"
33
- Access-Control-Max-Age:
34
- - '86400'
35
- Cache-Control:
36
- - max-age=0
37
- Content-Type:
38
- - application/vnd.contentful.delivery.v1+json
39
- Content-Length:
40
- - '179'
41
- Accept-Ranges:
42
- - bytes
43
- Via:
44
- - 1.1 varnish
45
- X-Served-By:
46
- - cache-am72-AMS
47
- X-Cache:
48
- - MISS
49
- X-Cache-Hits:
50
- - '0'
51
- body:
52
- encoding: UTF-8
53
- string: |
54
- {
55
- "sys": {
56
- "type": "Error",
57
- "id": "AccessTokenInvalid"
58
- },
59
- "message": "The access token you sent could not be found or is invalid.",
60
- "requestId": "85f-649640521"
61
- }
62
- http_version:
63
- recorded_at: Wed, 16 Apr 2014 09:00:24 GMT
64
- recorded_with: VCR 2.9.0
@@ -1,76 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://cdn.contentful.com/spaces/wrong/environments/master/entries?sys.id=nyancat
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - RubyContentfulGem/1.2.0
12
- Authorization:
13
- - Bearer credentials
14
- Content-Type:
15
- - application/vnd.contentful.delivery.v1+json
16
- Accept-Encoding:
17
- - gzip
18
- Connection:
19
- - close
20
- Host:
21
- - cdn.contentful.com
22
- response:
23
- status:
24
- code: 503
25
- message: ServiceUnavailable
26
- headers:
27
- Access-Control-Allow-Headers:
28
- - Accept,Accept-Language,Authorization,Cache-Control,Content-Length,Content-Range,Content-Type,DNT,Destination,Expires,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Last-Modified,Origin,Pragma,Range,User-Agent,X-Http-Method-Override,X-Mx-ReqToken,X-Requested-With,X-Contentful-Version,X-Contentful-Content-Type,X-Contentful-Organization,X-Contentful-Skip-Transformation,X-Contentful-User-Agent
29
- Access-Control-Allow-Methods:
30
- - GET,HEAD,OPTIONS
31
- Access-Control-Allow-Origin:
32
- - "*"
33
- Access-Control-Expose-Headers:
34
- - Etag
35
- Access-Control-Max-Age:
36
- - '86400'
37
- Cache-Control:
38
- - max-age=0
39
- Content-Type:
40
- - application/vnd.contentful.delivery.v1+json
41
- Server:
42
- - Contentful
43
- X-Contentful-Request-Id:
44
- - 2c869757aa2dca0bddce49574f85e62b
45
- Content-Length:
46
- - '198'
47
- Accept-Ranges:
48
- - bytes
49
- Date:
50
- - Tue, 20 Dec 2016 16:27:17 GMT
51
- Via:
52
- - 1.1 varnish
53
- Connection:
54
- - close
55
- X-Served-By:
56
- - cache-fra1238-FRA
57
- X-Cache:
58
- - MISS
59
- X-Cache-Hits:
60
- - '0'
61
- X-Timer:
62
- - S1482251237.033636,VS0,VE114
63
- body:
64
- encoding: ASCII-8BIT
65
- string: |
66
- {
67
- "sys": {
68
- "type": "Error",
69
- "id": "AccessTokenInvalid"
70
- },
71
- "message": "The access token you sent could not be found or is invalid.",
72
- "requestId": "2c869757aa2dca0bddce49574f85e62b"
73
- }
74
- http_version:
75
- recorded_at: Tue, 20 Dec 2016 16:27:17 GMT
76
- recorded_with: VCR 3.0.3
data/spec/link_spec.rb DELETED
@@ -1,50 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Contentful::Link do
4
- let(:client) { create_client }
5
- let(:entry) { vcr('entry') { create_client.entry('nyancat') } }
6
- let(:link) { entry.space }
7
- let(:content_type_link) { entry.content_type }
8
-
9
- describe 'SystemProperties' do
10
- it 'has a #sys getter returning a hash with symbol keys' do
11
- expect(link.sys).to be_a Hash
12
- expect(link.sys.keys.sample).to be_a Symbol
13
- end
14
-
15
- it 'has #id' do
16
- expect(link.id).to eq 'cfexampleapi'
17
- end
18
-
19
- it 'has #type' do
20
- expect(link.type).to eq 'Link'
21
- end
22
-
23
- it 'has #link_type' do
24
- expect(link.link_type).to eq 'Space'
25
- end
26
- end
27
-
28
- describe '#resolve' do
29
- it 'queries the api for the resource' do
30
- vcr('space')do
31
- expect(link.resolve(client)).to be_a Contentful::Space
32
- end
33
- end
34
-
35
- it 'queries the api for the resource (different link object)' do
36
- vcr('content_type')do
37
- expect(content_type_link.resolve(client)).to be_a Contentful::ContentType
38
- end
39
- end
40
- end
41
-
42
- describe 'camel case' do
43
- it 'supports camel case' do
44
- vcr('entry') {
45
- space_link = create_client(use_camel_case: true).entry('nyancat').space
46
- expect(space_link.linkType).to eq 'Space'
47
- }
48
- end
49
- end
50
- end
data/spec/locale_spec.rb DELETED
@@ -1,37 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Contentful::Locale do
4
- let(:locale) { vcr('locale') { create_client.space.locales.first } }
5
-
6
- describe 'Properties' do
7
- it 'has #code' do
8
- expect(locale.code).to eq 'en-US'
9
- end
10
-
11
- it 'has #name' do
12
- expect(locale.name).to eq 'English'
13
- end
14
-
15
- it 'has #default' do
16
- expect(locale.default).to eq true
17
- end
18
- end
19
-
20
- describe 'locales endpoint' do
21
- it 'locales can be fetched from environments' do
22
- vcr('locale_from_environment') {
23
- client = create_client(
24
- space: 'facgnwwgj5fe',
25
- access_token: '<ACCESS_TOKEN>',
26
- environment: 'testing'
27
- )
28
-
29
- locales = client.locales
30
-
31
- expect(locales).to be_a ::Contentful::Array
32
- expect(locales.first).to be_a ::Contentful::Locale
33
- expect(locales.first.code).to eq 'en-US'
34
- }
35
- end
36
- end
37
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Contentful::Location do
4
- let(:location)do
5
- vcr('location')do
6
- Contentful::Client.new(
7
- space: 'lzjz8hygvfgu',
8
- access_token: '0c6ef483524b5e46b3bafda1bf355f38f5f40b4830f7599f790a410860c7c271',
9
- dynamic_entries: :auto,
10
- ).entry('3f6fq5ylFCi4kIYAQKsAYG').location
11
- end
12
- end
13
-
14
- describe 'Properties' do
15
- it 'has #lat' do
16
- expect(location.lat).to be_a Float
17
- expect(location.lat.to_i).to eq 36
18
- end
19
-
20
- it 'has #lon' do
21
- expect(location.lon).to be_a Float
22
- expect(location.lon.to_i).to eq(-94)
23
- end
24
- end
25
- end
data/spec/request_spec.rb DELETED
@@ -1,57 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Contentful::Request do
4
- describe '#get' do
5
- it 'calls client' do
6
- client = create_client
7
- request = Contentful::Request.new(client, '/content_types', nil, 'nyancat')
8
-
9
- expect(client).to receive(:get).with(request)
10
-
11
- request.get
12
- end
13
- end
14
-
15
- describe '#query' do
16
- it 'converts arrays given in query to comma strings' do
17
- client = create_client
18
- request = Contentful::Request.new(client, '/entries', 'fields.likes[in]' => %w(jake finn))
19
- expect(request.query[:'fields.likes[in]']).to eq 'jake,finn'
20
- end
21
- end
22
-
23
- context '[single resource]' do
24
- let(:request)do
25
- Contentful::Request.new(create_client, '/content_types', nil, 'nyancat')
26
- end
27
-
28
- describe '#url' do
29
- it 'contais endpoint' do
30
- expect(request.url).to include 'content_types'
31
- end
32
-
33
- it 'contains id' do
34
- expect(request.url).to include 'nyancat'
35
- end
36
- end
37
- end
38
-
39
- context '[multi resource]' do
40
- let(:request)do
41
- Contentful::Request.new(create_client, '/content_types', 'something' => 'requested')
42
- end
43
-
44
- describe '#query' do
45
- it 'contains query' do
46
- expect(request.query).not_to be_empty
47
- expect(request.query[:something]).to eq 'requested'
48
- end
49
- end
50
-
51
- describe '#url' do
52
- it 'contais endpoint' do
53
- expect(request.url).to include 'content_types'
54
- end
55
- end
56
- end
57
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Resource Building Examples' do
4
- it 'can deal with arrays' do
5
- request = Contentful::Request.new(nil, 'entries')
6
- response = Contentful::Response.new(raw_fixture('link_array'), request)
7
- resource = Contentful::ResourceBuilder.new(response.object).run
8
-
9
- expect(resource.fields[:links]).to be_a Array
10
- expect(resource.fields[:links].first).to be_a Contentful::Link
11
- end
12
-
13
- it 'replaces links with included versions if present' do
14
- request = Contentful::Request.new(nil, 'entries')
15
- response = Contentful::Response.new(raw_fixture('includes'), request)
16
- resource = Contentful::ResourceBuilder.new(response.object).run.first
17
-
18
- expect(resource.fields[:links]).to be_a Array
19
- expect(resource.fields[:links].first).to be_a Contentful::Entry
20
- end
21
-
22
- it 'can also reference itself' do
23
- request = Contentful::Request.new(nil, 'entries')
24
- response = Contentful::Response.new(raw_fixture('self_link'), request)
25
- resource = Contentful::ResourceBuilder.new(response.object).run.first
26
-
27
- other_resource = resource.fields[:e]
28
- expect(other_resource).to be_a Contentful::Entry
29
- expect(other_resource.fields[:e]).to eq resource
30
- end
31
- end
@@ -1,62 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Contentful::Response do
4
- let(:successful_response) { Contentful::Response.new raw_fixture('nyancat'), Contentful::Request.new(nil, '/entries', nil, 'nyancat') }
5
- let(:error_response) { Contentful::Response.new raw_fixture('not_found', 404) }
6
- let(:unparsable_response) { Contentful::Response.new raw_fixture('unparsable') }
7
-
8
- describe '#raw' do
9
- it 'returns the raw response it has been initalized with' do
10
- expect(successful_response.raw.to_s).to eql raw_fixture('nyancat').to_s
11
- end
12
- end
13
-
14
- describe '#object' do
15
- it "returns the repsonse's parsed json" do
16
- expect(successful_response.object).to eq json_fixture('nyancat')
17
- end
18
- end
19
-
20
- describe '#request' do
21
- it 'returns the request the response has been initalized with' do
22
- expect(successful_response.request).to be_a Contentful::Request
23
- end
24
- end
25
-
26
- describe '#status' do
27
- it 'returns :ok for normal responses' do
28
- expect(successful_response.status).to eq :ok
29
- end
30
-
31
- it 'returns :error for error responses' do
32
- expect(error_response.status).to eq :error
33
- end
34
-
35
- it 'returns :error for unparsable json responses' do
36
- expect(unparsable_response.status).to eq :error
37
- end
38
-
39
- it 'returns :error for responses without content' do
40
- raw_response = ''
41
- allow(raw_response).to receive(:status) { 204 }
42
- no_content_response = Contentful::Response.new raw_response
43
- expect(no_content_response.status).to eq :no_content
44
- end
45
- end
46
-
47
- describe '#error_message' do
48
- it 'returns contentful error message for contentful errors' do
49
- expect(error_response.error_message).to eq 'The resource could not be found.'
50
- end
51
-
52
- it 'returns json parser error message for json parse errors' do
53
- expect(unparsable_response.error_message).to include 'unexpected token'
54
- end
55
-
56
- it 'returns a ServiceUnavailable error on a 503' do
57
- error_response = Contentful::Response.new raw_fixture('not_found', 503)
58
- expect(error_response.status).to eql :error
59
- expect(error_response.object).to be_kind_of Contentful::ServiceUnavailable
60
- end
61
- end
62
- end
data/spec/space_spec.rb DELETED
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Contentful::Space do
4
- let(:space) { vcr('space') { create_client.space } }
5
-
6
- describe 'SystemProperties' do
7
- it 'has a #sys getter returning a hash with symbol keys' do
8
- expect(space.sys).to be_a Hash
9
- expect(space.sys.keys.sample).to be_a Symbol
10
- end
11
-
12
- it 'has #id' do
13
- expect(space.id).to eq 'cfexampleapi'
14
- end
15
-
16
- it 'has #type' do
17
- expect(space.type).to eq 'Space'
18
- end
19
- end
20
-
21
- describe 'Properties' do
22
- it 'has #name' do
23
- expect(space.name).to eq 'Contentful Example API'
24
- end
25
-
26
- it 'has #locales' do
27
- expect(space.locales).to be_a Array
28
- expect(space.locales.first).to be_a Contentful::Locale
29
- end
30
- end
31
- end
data/spec/spec_helper.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'simplecov'
2
- SimpleCov.start
3
-
4
- require 'rspec'
5
- require 'contentful'
6
- require 'securerandom'
7
- require 'rr'
8
-
9
- Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each { |f| require f }
10
-
11
- RSpec.configure do |config|
12
- config.filter_run :focus => true
13
- config.run_all_when_everything_filtered = true
14
- end
@@ -1,6 +0,0 @@
1
- def create_client(options = {})
2
- Contentful::Client.new({
3
- space: 'cfexampleapi',
4
- access_token: 'b4c0n73n7fu1',
5
- }.merge(options))
6
- end
@@ -1,18 +0,0 @@
1
- require 'multi_json'
2
-
3
- def raw_fixture(which, status = 200, _as_json = false, headers = {})
4
- object = Object.new
5
- allow(object).to receive(:status) { status }
6
- allow(object).to receive(:headers) { headers }
7
- allow(object).to receive(:to_s) { File.read File.dirname(__FILE__) + "/../fixtures/json_responses/#{which}.json" }
8
- allow(object).to receive(:body) { object.to_s }
9
- allow(object).to receive(:[]) { |key| object.headers[key] }
10
-
11
- object
12
- end
13
-
14
- def json_fixture(which, _as_json = false)
15
- MultiJson.load(
16
- File.read File.dirname(__FILE__) + "/../fixtures/json_responses/#{which}.json"
17
- )
18
- end
data/spec/support/vcr.rb DELETED
@@ -1,16 +0,0 @@
1
- require 'vcr'
2
-
3
- VCR.configure do |c|
4
- c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
5
- c.ignore_localhost = true
6
- c.hook_into :webmock
7
- c.default_cassette_options = { record: :once }
8
- end
9
-
10
- def vcr(name, &block)
11
- VCR.use_cassette(name, &block)
12
- end
13
-
14
- def expect_vcr(name, &block)
15
- expect { VCR.use_cassette(name, &block) }
16
- end