contentful 1.2.2 → 2.0.0

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/LICENSE.txt +1 -0
  4. data/README.md +8 -0
  5. data/contentful.gemspec +2 -1
  6. data/examples/custom_classes.rb +23 -26
  7. data/examples/raise_errors.rb +2 -2
  8. data/lib/contentful.rb +0 -1
  9. data/lib/contentful/array.rb +27 -19
  10. data/lib/contentful/array_like.rb +51 -0
  11. data/lib/contentful/asset.rb +43 -11
  12. data/lib/contentful/base_resource.rb +87 -0
  13. data/lib/contentful/client.rb +43 -34
  14. data/lib/contentful/coercions.rb +116 -0
  15. data/lib/contentful/content_type.rb +23 -8
  16. data/lib/contentful/content_type_cache.rb +26 -0
  17. data/lib/contentful/deleted_asset.rb +2 -5
  18. data/lib/contentful/deleted_entry.rb +2 -5
  19. data/lib/contentful/entry.rb +55 -33
  20. data/lib/contentful/error.rb +1 -1
  21. data/lib/contentful/field.rb +37 -9
  22. data/lib/contentful/fields_resource.rb +115 -0
  23. data/lib/contentful/file.rb +7 -8
  24. data/lib/contentful/link.rb +3 -6
  25. data/lib/contentful/locale.rb +6 -6
  26. data/lib/contentful/location.rb +7 -5
  27. data/lib/contentful/resource_builder.rb +72 -226
  28. data/lib/contentful/space.rb +16 -6
  29. data/lib/contentful/support.rb +41 -3
  30. data/lib/contentful/sync_page.rb +17 -10
  31. data/lib/contentful/version.rb +1 -1
  32. data/spec/array_spec.rb +4 -8
  33. data/spec/client_class_spec.rb +12 -23
  34. data/spec/client_configuration_spec.rb +13 -23
  35. data/spec/content_type_spec.rb +0 -5
  36. data/spec/entry_spec.rb +130 -125
  37. data/spec/error_requests_spec.rb +1 -1
  38. data/spec/field_spec.rb +0 -5
  39. data/spec/file_spec.rb +0 -5
  40. data/spec/fixtures/vcr_cassettes/entry.yml +54 -64
  41. data/spec/fixtures/vcr_cassettes/entry/include_resolution.yml +101 -0
  42. data/spec/fixtures/vcr_cassettes/entry/marshall.yml +227 -251
  43. data/spec/fixtures/vcr_cassettes/entry/raw.yml +88 -124
  44. data/spec/fixtures/vcr_cassettes/entry_locales.yml +56 -74
  45. data/spec/fixtures/vcr_cassettes/human.yml +63 -40
  46. data/spec/fixtures/vcr_cassettes/location.yml +99 -211
  47. data/spec/fixtures/vcr_cassettes/multi_locale_array_reference.yml +12 -16
  48. data/spec/fixtures/vcr_cassettes/not_found.yml +26 -21
  49. data/spec/fixtures/vcr_cassettes/nyancat.yml +53 -63
  50. data/spec/fixtures/vcr_cassettes/ratelimit.yml +1 -1
  51. data/spec/fixtures/vcr_cassettes/reloaded_entry.yml +54 -64
  52. data/spec/fixtures/vcr_cassettes/unauthorized.yml +1 -1
  53. data/spec/fixtures/vcr_cassettes/unavailable.yml +27 -15
  54. data/spec/link_spec.rb +3 -2
  55. data/spec/locale_spec.rb +0 -5
  56. data/spec/location_spec.rb +1 -6
  57. data/spec/request_spec.rb +3 -2
  58. data/spec/resource_building_spec.rb +10 -7
  59. data/spec/response_spec.rb +1 -1
  60. data/spec/space_spec.rb +0 -5
  61. data/spec/spec_helper.rb +3 -0
  62. data/spec/support/json_responses.rb +3 -3
  63. data/spec/sync_page_spec.rb +1 -6
  64. data/spec/sync_spec.rb +11 -7
  65. metadata +69 -20
  66. data/examples/dynamic_entries.rb +0 -124
  67. data/examples/resource_mapping.rb +0 -32
  68. data/lib/contentful/constants.rb +0 -504
  69. data/lib/contentful/dynamic_entry.rb +0 -57
  70. data/lib/contentful/resource.rb +0 -239
  71. data/lib/contentful/resource/array_like.rb +0 -39
  72. data/lib/contentful/resource/asset_fields.rb +0 -58
  73. data/lib/contentful/resource/custom_resource.rb +0 -29
  74. data/lib/contentful/resource/fields.rb +0 -73
  75. data/lib/contentful/resource/system_properties.rb +0 -55
  76. data/spec/coercions_spec.rb +0 -23
  77. data/spec/dynamic_entry_spec.rb +0 -75
  78. data/spec/resource_spec.rb +0 -79
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://cdn.contentful.com/spaces/wrong/entries/nyancat
5
+ uri: https://cdn.contentful.com/spaces/wrong/entries?sys.id=nyancat
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -2,17 +2,21 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://cdn.contentful.com/spaces/wrong/entries/nyancat
5
+ uri: https://cdn.contentful.com/spaces/wrong/entries?sys.id=nyancat
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
10
  User-Agent:
11
- - RubyContentfulGem/0.1.1
11
+ - RubyContentfulGem/1.2.0
12
12
  Authorization:
13
13
  - Bearer credentials
14
14
  Content-Type:
15
15
  - application/vnd.contentful.delivery.v1+json
16
+ Accept-Encoding:
17
+ - gzip
18
+ Connection:
19
+ - close
16
20
  Host:
17
21
  - cdn.contentful.com
18
22
  response:
@@ -20,45 +24,53 @@ http_interactions:
20
24
  code: 503
21
25
  message: ServiceUnavailable
22
26
  headers:
23
- Date:
24
- - Wed, 16 Apr 2014 09:00:24 GMT
25
- Server:
26
- - nginx/1.1.19
27
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
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
29
  Access-Control-Allow-Methods:
30
30
  - GET,HEAD,OPTIONS
31
31
  Access-Control-Allow-Origin:
32
32
  - "*"
33
+ Access-Control-Expose-Headers:
34
+ - Etag
33
35
  Access-Control-Max-Age:
34
36
  - '86400'
35
37
  Cache-Control:
36
38
  - max-age=0
37
39
  Content-Type:
38
40
  - application/vnd.contentful.delivery.v1+json
41
+ Server:
42
+ - Contentful
43
+ X-Contentful-Request-Id:
44
+ - 2c869757aa2dca0bddce49574f85e62b
39
45
  Content-Length:
40
- - '179'
46
+ - '198'
41
47
  Accept-Ranges:
42
48
  - bytes
49
+ Date:
50
+ - Tue, 20 Dec 2016 16:27:17 GMT
43
51
  Via:
44
52
  - 1.1 varnish
53
+ Connection:
54
+ - close
45
55
  X-Served-By:
46
- - cache-am72-AMS
56
+ - cache-fra1238-FRA
47
57
  X-Cache:
48
58
  - MISS
49
59
  X-Cache-Hits:
50
60
  - '0'
61
+ X-Timer:
62
+ - S1482251237.033636,VS0,VE114
51
63
  body:
52
- encoding: UTF-8
64
+ encoding: ASCII-8BIT
53
65
  string: |
54
66
  {
55
67
  "sys": {
56
68
  "type": "Error",
57
- "id": "ServiceUnavailable"
69
+ "id": "AccessTokenInvalid"
58
70
  },
59
- "message": "Service Unavailable, contenful.com API seems to be down",
60
- "requestId": "85f-649640521"
71
+ "message": "The access token you sent could not be found or is invalid.",
72
+ "requestId": "2c869757aa2dca0bddce49574f85e62b"
61
73
  }
62
74
  http_version:
63
- recorded_at: Wed, 16 Apr 2014 09:00:24 GMT
64
- recorded_with: VCR 2.9.0
75
+ recorded_at: Tue, 20 Dec 2016 16:27:17 GMT
76
+ recorded_with: VCR 3.0.3
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Contentful::Link do
4
+ let(:client) { create_client }
4
5
  let(:entry) { vcr('entry') { create_client.entry('nyancat') } }
5
6
  let(:link) { entry.space }
6
7
  let(:content_type_link) { entry.content_type }
@@ -27,13 +28,13 @@ describe Contentful::Link do
27
28
  describe '#resolve' do
28
29
  it 'queries the api for the resource' do
29
30
  vcr('space')do
30
- expect(link.resolve).to be_a Contentful::Space
31
+ expect(link.resolve(client)).to be_a Contentful::Space
31
32
  end
32
33
  end
33
34
 
34
35
  it 'queries the api for the resource (different link object)' do
35
36
  vcr('content_type')do
36
- expect(content_type_link.resolve).to be_a Contentful::ContentType
37
+ expect(content_type_link.resolve(client)).to be_a Contentful::ContentType
37
38
  end
38
39
  end
39
40
  end
@@ -4,11 +4,6 @@ describe Contentful::Locale do
4
4
  let(:locale) { vcr('locale') { create_client.space.locales.first } }
5
5
 
6
6
  describe 'Properties' do
7
- it 'has a #properties getter returning a hash with symbol keys' do
8
- expect(locale.properties).to be_a Hash
9
- expect(locale.properties.keys.sample).to be_a Symbol
10
- end
11
-
12
7
  it 'has #code' do
13
8
  expect(locale.code).to eq 'en-US'
14
9
  end
@@ -12,11 +12,6 @@ describe Contentful::Location do
12
12
  end
13
13
 
14
14
  describe 'Properties' do
15
- it 'has a #properties getter returning a hash with symbol keys' do
16
- expect(location.properties).to be_a Hash
17
- expect(location.properties.keys.sample).to be_a Symbol
18
- end
19
-
20
15
  it 'has #lat' do
21
16
  expect(location.lat).to be_a Float
22
17
  expect(location.lat.to_i).to eq 36
@@ -24,7 +19,7 @@ describe Contentful::Location do
24
19
 
25
20
  it 'has #lon' do
26
21
  expect(location.lon).to be_a Float
27
- expect(location.lon.to_i).to eq -94
22
+ expect(location.lon.to_i).to eq(-94)
28
23
  end
29
24
  end
30
25
  end
@@ -4,10 +4,11 @@ describe Contentful::Request do
4
4
  describe '#get' do
5
5
  it 'calls client' do
6
6
  client = create_client
7
- stub(client).get
8
7
  request = Contentful::Request.new(client, '/content_types', nil, 'nyancat')
8
+
9
+ expect(client).to receive(:get).with(request)
10
+
9
11
  request.get
10
- expect(client).to have_received.get(request)
11
12
  end
12
13
  end
13
14
 
@@ -2,27 +2,30 @@ require 'spec_helper'
2
2
 
3
3
  describe 'Resource Building Examples' do
4
4
  it 'can deal with arrays' do
5
- response = Contentful::Response.new raw_fixture('link_array')
6
- resource = Contentful::ResourceBuilder.new(create_client, response).run
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
7
8
 
8
9
  expect(resource.fields[:links]).to be_a Array
9
10
  expect(resource.fields[:links].first).to be_a Contentful::Link
10
11
  end
11
12
 
12
13
  it 'replaces links with included versions if present' do
13
- response = Contentful::Response.new raw_fixture('includes')
14
- resource = Contentful::ResourceBuilder.new(create_client, response).run.first
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
15
17
 
16
18
  expect(resource.fields[:links]).to be_a Array
17
19
  expect(resource.fields[:links].first).to be_a Contentful::Entry
18
20
  end
19
21
 
20
22
  it 'can also reference itself' do
21
- response = Contentful::Response.new raw_fixture('self_link')
22
- resource = Contentful::ResourceBuilder.new(create_client, response).run.first
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
23
26
 
24
27
  other_resource = resource.fields[:e]
25
28
  expect(other_resource).to be_a Contentful::Entry
26
- expect(other_resource.fields[:e]).to be resource
29
+ expect(other_resource.fields[:e]).to eq resource
27
30
  end
28
31
  end
@@ -38,7 +38,7 @@ describe Contentful::Response do
38
38
 
39
39
  it 'returns :error for responses without content' do
40
40
  raw_response = ''
41
- stub(raw_response).status { 204 }
41
+ allow(raw_response).to receive(:status) { 204 }
42
42
  no_content_response = Contentful::Response.new raw_response
43
43
  expect(no_content_response.status).to eq :no_content
44
44
  end
@@ -19,11 +19,6 @@ describe Contentful::Space do
19
19
  end
20
20
 
21
21
  describe 'Properties' do
22
- it 'has a #properties getter returning a hash with symbol keys' do
23
- expect(space.properties).to be_a Hash
24
- expect(space.properties.keys.sample).to be_a Symbol
25
- end
26
-
27
22
  it 'has #name' do
28
23
  expect(space.name).to eq 'Contentful Example API'
29
24
  end
@@ -1,3 +1,6 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
1
4
  require 'rspec'
2
5
  require 'contentful'
3
6
  require 'securerandom'
@@ -2,9 +2,9 @@ require 'multi_json'
2
2
 
3
3
  def raw_fixture(which, status = 200, _as_json = false)
4
4
  object = Object.new
5
- stub(object).status { status }
6
- stub(object).headers { {} }
7
- stub(object).to_s { File.read File.dirname(__FILE__) + "/../fixtures/json_responses/#{which}.json" }
5
+ allow(object).to receive(:status) { status }
6
+ allow(object).to receive(:headers) { {} }
7
+ allow(object).to receive(:to_s) { File.read File.dirname(__FILE__) + "/../fixtures/json_responses/#{which}.json" }
8
8
 
9
9
  object
10
10
  end
@@ -16,14 +16,9 @@ describe Contentful::SyncPage do
16
16
  end
17
17
 
18
18
  describe 'Properties' do
19
- it 'has a #properties getter returning a hash with symbol keys' do
20
- expect(page.properties).to be_a Hash
21
- expect(page.properties.keys.sample).to be_a Symbol
22
- end
23
-
24
19
  it 'has #items which contain resources' do
25
20
  expect(page_with_more.items).to be_a Array
26
- expect(page_with_more.items.sample).to be_a Contentful::Resource
21
+ expect(page_with_more.items.sample).to be_a Contentful::BaseResource
27
22
  end
28
23
  end
29
24
 
@@ -1,6 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Contentful::Sync do
4
+ before :each do
5
+ Contentful::ContentTypeCache.clear!
6
+ end
7
+
4
8
  let(:first_page) do
5
9
  vcr('sync_page')do
6
10
  create_client.sync(initial: true).first_page
@@ -76,7 +80,7 @@ describe Contentful::Sync do
76
80
  sync = create_client.sync(initial: true)
77
81
  vcr('sync_page'){ vcr('sync_page_2'){
78
82
  sync.each_item do |item|
79
- expect(item).to be_a Contentful::Resource
83
+ expect(item).to be_a Contentful::BaseResource
80
84
  end
81
85
  }}
82
86
  end
@@ -88,12 +92,12 @@ describe Contentful::Sync do
88
92
  vcr('sync_page') {
89
93
  asset = sync.first_page.items.select { |item| item.is_a?(Contentful::Asset) }.first
90
94
 
91
- expect(asset.file.properties[:fileName]).to eq 'doge.jpg'
92
- expect(asset.file.properties[:contentType]).to eq 'image/jpeg'
93
- expect(asset.file.properties[:details]['image']['width']).to eq 5800
94
- expect(asset.file.properties[:details]['image']['height']).to eq 4350
95
- expect(asset.file.properties[:details]['size']).to eq 522943
96
- expect(asset.file.properties[:url]).to eq '//images.contentful.com/cfexampleapi/1x0xpXu4pSGS4OukSyWGUK/cc1239c6385428ef26f4180190532818/doge.jpg'
95
+ expect(asset.file.file_name).to eq 'doge.jpg'
96
+ expect(asset.file.content_type).to eq 'image/jpeg'
97
+ expect(asset.file.details['image']['width']).to eq 5800
98
+ expect(asset.file.details['image']['height']).to eq 4350
99
+ expect(asset.file.details['size']).to eq 522943
100
+ expect(asset.file.url).to eq '//images.contentful.com/cfexampleapi/1x0xpXu4pSGS4OukSyWGUK/cc1239c6385428ef26f4180190532818/doge.jpg'
97
101
  }
98
102
  end
99
103
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentful
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Contentful GmbH (Jan Lelis)
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-01-03 00:00:00.000000000 Z
13
+ date: 2017-03-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -164,14 +164,14 @@ dependencies:
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: '2'
167
+ version: '3'
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: '2'
174
+ version: '3'
175
175
  - !ruby/object:Gem::Dependency
176
176
  name: rr
177
177
  requirement: !ruby/object:Gem::Requirement
@@ -200,6 +200,20 @@ dependencies:
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
202
  version: '0'
203
+ - !ruby/object:Gem::Dependency
204
+ name: simplecov
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ type: :development
211
+ prerelease: false
212
+ version_requirements: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
203
217
  - !ruby/object:Gem::Dependency
204
218
  name: webmock
205
219
  requirement: !ruby/object:Gem::Requirement
@@ -255,25 +269,66 @@ files:
255
269
  - RELEASE.md
256
270
  - Rakefile
257
271
  - contentful.gemspec
272
+ - coverage/.last_run.json
273
+ - coverage/.resultset.json
274
+ - coverage/.resultset.json.lock
275
+ - coverage/assets/0.10.0/application.css
276
+ - coverage/assets/0.10.0/application.js
277
+ - coverage/assets/0.10.0/colorbox/border.png
278
+ - coverage/assets/0.10.0/colorbox/controls.png
279
+ - coverage/assets/0.10.0/colorbox/loading.gif
280
+ - coverage/assets/0.10.0/colorbox/loading_background.png
281
+ - coverage/assets/0.10.0/favicon_green.png
282
+ - coverage/assets/0.10.0/favicon_red.png
283
+ - coverage/assets/0.10.0/favicon_yellow.png
284
+ - coverage/assets/0.10.0/loading.gif
285
+ - coverage/assets/0.10.0/magnify.png
286
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
287
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
288
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
289
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
290
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png
291
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
292
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
293
+ - coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
294
+ - coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png
295
+ - coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png
296
+ - coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png
297
+ - coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png
298
+ - coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png
299
+ - coverage/index.html
258
300
  - doc/Contentful.html
259
301
  - doc/Contentful/AccessDenied.html
260
302
  - doc/Contentful/Array.html
303
+ - doc/Contentful/ArrayCoercion.html
304
+ - doc/Contentful/ArrayLike.html
261
305
  - doc/Contentful/Asset.html
262
306
  - doc/Contentful/BadRequest.html
307
+ - doc/Contentful/BaseCoercion.html
308
+ - doc/Contentful/BaseResource.html
309
+ - doc/Contentful/BooleanCoercion.html
263
310
  - doc/Contentful/Client.html
264
311
  - doc/Contentful/Constants.html
265
312
  - doc/Contentful/ContentType.html
313
+ - doc/Contentful/ContentTypeCache.html
314
+ - doc/Contentful/DateCoercion.html
266
315
  - doc/Contentful/DeletedAsset.html
267
316
  - doc/Contentful/DeletedEntry.html
268
317
  - doc/Contentful/DynamicEntry.html
269
318
  - doc/Contentful/Entry.html
270
319
  - doc/Contentful/Error.html
271
320
  - doc/Contentful/Field.html
321
+ - doc/Contentful/FieldsResource.html
272
322
  - doc/Contentful/File.html
323
+ - doc/Contentful/FloatCoercion.html
324
+ - doc/Contentful/IntegerCoercion.html
273
325
  - doc/Contentful/Link.html
326
+ - doc/Contentful/LinkCoercion.html
274
327
  - doc/Contentful/Locale.html
275
328
  - doc/Contentful/Location.html
329
+ - doc/Contentful/LocationCoercion.html
276
330
  - doc/Contentful/NotFound.html
331
+ - doc/Contentful/ObjectCoercion.html
277
332
  - doc/Contentful/RateLimitExceeded.html
278
333
  - doc/Contentful/Request.html
279
334
  - doc/Contentful/Resource.html
@@ -292,9 +347,12 @@ files:
292
347
  - doc/Contentful/ServerError.html
293
348
  - doc/Contentful/ServiceUnavailable.html
294
349
  - doc/Contentful/Space.html
350
+ - doc/Contentful/StringCoercion.html
295
351
  - doc/Contentful/Support.html
352
+ - doc/Contentful/SymbolCoercion.html
296
353
  - doc/Contentful/Sync.html
297
354
  - doc/Contentful/SyncPage.html
355
+ - doc/Contentful/TextCoercion.html
298
356
  - doc/Contentful/Unauthorized.html
299
357
  - doc/Contentful/UnparsableJson.html
300
358
  - doc/Contentful/UnparsableResource.html
@@ -315,34 +373,29 @@ files:
315
373
  - doc/method_list.html
316
374
  - doc/top-level-namespace.html
317
375
  - examples/custom_classes.rb
318
- - examples/dynamic_entries.rb
319
376
  - examples/example_queries.rb
320
377
  - examples/raise_errors.rb
321
378
  - examples/raw_mode.rb
322
- - examples/resource_mapping.rb
323
379
  - lib/contentful.rb
324
380
  - lib/contentful/array.rb
381
+ - lib/contentful/array_like.rb
325
382
  - lib/contentful/asset.rb
383
+ - lib/contentful/base_resource.rb
326
384
  - lib/contentful/client.rb
327
- - lib/contentful/constants.rb
385
+ - lib/contentful/coercions.rb
328
386
  - lib/contentful/content_type.rb
387
+ - lib/contentful/content_type_cache.rb
329
388
  - lib/contentful/deleted_asset.rb
330
389
  - lib/contentful/deleted_entry.rb
331
- - lib/contentful/dynamic_entry.rb
332
390
  - lib/contentful/entry.rb
333
391
  - lib/contentful/error.rb
334
392
  - lib/contentful/field.rb
393
+ - lib/contentful/fields_resource.rb
335
394
  - lib/contentful/file.rb
336
395
  - lib/contentful/link.rb
337
396
  - lib/contentful/locale.rb
338
397
  - lib/contentful/location.rb
339
398
  - lib/contentful/request.rb
340
- - lib/contentful/resource.rb
341
- - lib/contentful/resource/array_like.rb
342
- - lib/contentful/resource/asset_fields.rb
343
- - lib/contentful/resource/custom_resource.rb
344
- - lib/contentful/resource/fields.rb
345
- - lib/contentful/resource/system_properties.rb
346
399
  - lib/contentful/resource_builder.rb
347
400
  - lib/contentful/response.rb
348
401
  - lib/contentful/space.rb
@@ -355,11 +408,9 @@ files:
355
408
  - spec/auto_includes_spec.rb
356
409
  - spec/client_class_spec.rb
357
410
  - spec/client_configuration_spec.rb
358
- - spec/coercions_spec.rb
359
411
  - spec/content_type_spec.rb
360
412
  - spec/deleted_asset_spec.rb
361
413
  - spec/deleted_entry_spec.rb
362
- - spec/dynamic_entry_spec.rb
363
414
  - spec/entry_spec.rb
364
415
  - spec/error_class_spec.rb
365
416
  - spec/error_requests_spec.rb
@@ -387,6 +438,7 @@ files:
387
438
  - spec/fixtures/vcr_cassettes/entries/issue_117.yml
388
439
  - spec/fixtures/vcr_cassettes/entry.yml
389
440
  - spec/fixtures/vcr_cassettes/entry/custom_resource.yml
441
+ - spec/fixtures/vcr_cassettes/entry/include_resolution.yml
390
442
  - spec/fixtures/vcr_cassettes/entry/json_objects.yml
391
443
  - spec/fixtures/vcr_cassettes/entry/json_objects_client.yml
392
444
  - spec/fixtures/vcr_cassettes/entry/marshall.yml
@@ -424,7 +476,6 @@ files:
424
476
  - spec/location_spec.rb
425
477
  - spec/request_spec.rb
426
478
  - spec/resource_building_spec.rb
427
- - spec/resource_spec.rb
428
479
  - spec/response_spec.rb
429
480
  - spec/space_spec.rb
430
481
  - spec/spec_helper.rb
@@ -463,11 +514,9 @@ test_files:
463
514
  - spec/auto_includes_spec.rb
464
515
  - spec/client_class_spec.rb
465
516
  - spec/client_configuration_spec.rb
466
- - spec/coercions_spec.rb
467
517
  - spec/content_type_spec.rb
468
518
  - spec/deleted_asset_spec.rb
469
519
  - spec/deleted_entry_spec.rb
470
- - spec/dynamic_entry_spec.rb
471
520
  - spec/entry_spec.rb
472
521
  - spec/error_class_spec.rb
473
522
  - spec/error_requests_spec.rb
@@ -495,6 +544,7 @@ test_files:
495
544
  - spec/fixtures/vcr_cassettes/entries/issue_117.yml
496
545
  - spec/fixtures/vcr_cassettes/entry.yml
497
546
  - spec/fixtures/vcr_cassettes/entry/custom_resource.yml
547
+ - spec/fixtures/vcr_cassettes/entry/include_resolution.yml
498
548
  - spec/fixtures/vcr_cassettes/entry/json_objects.yml
499
549
  - spec/fixtures/vcr_cassettes/entry/json_objects_client.yml
500
550
  - spec/fixtures/vcr_cassettes/entry/marshall.yml
@@ -532,7 +582,6 @@ test_files:
532
582
  - spec/location_spec.rb
533
583
  - spec/request_spec.rb
534
584
  - spec/resource_building_spec.rb
535
- - spec/resource_spec.rb
536
585
  - spec/response_spec.rb
537
586
  - spec/space_spec.rb
538
587
  - spec/spec_helper.rb