contentful 1.2.2 → 2.0.0

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