contentful 2.8.1 → 2.9.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/contentful/coercions.rb +73 -9
- data/lib/contentful/entry.rb +9 -1
- data/lib/contentful/field.rb +14 -13
- data/lib/contentful/support.rb +2 -0
- data/lib/contentful/version.rb +1 -1
- data/spec/entry_spec.rb +26 -0
- data/spec/field_spec.rb +6 -0
- data/spec/fixtures/vcr_cassettes/entries/structured_text.yml +167 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98009b534c8ea22dbfa1f4b1192aa715b8ead44425dbaf71ee2523ed67ec9202
|
4
|
+
data.tar.gz: 1a0f6a62fcc889d813d9e4d3ea603c37bfc09744a7d77541fc00bfbf0c9134b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9347ad13c5afd28b1da636e2468acf097c139175d3399eaae93cd627c7868d53d2c334b5a8a78c8f2ed2d91c656a1a46565a35f44f1297262b906dec7873e3b3
|
7
|
+
data.tar.gz: ec4acb6965b3e9c2a7dcd8a9045ac5fa8f02edb8a0e2a15fb2213e18c7837e798fb47a892f4df1fe909c68154520cd015e55dc8a27be51ec6180231e8af854bb
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,21 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
+
## 2.9.1
|
6
|
+
|
7
|
+
**Note:** This release includes support for `StructuredText`, this is an **alpha** feature and changes are to be expected. Further releases of this feature
|
8
|
+
will not increase a major version even if changes are breaking.
|
9
|
+
|
10
|
+
### Added
|
11
|
+
* Added support for `StructuredText` field type.
|
12
|
+
|
13
|
+
### Fixed
|
14
|
+
* Fixed `DateCoercion` when value is already a `Date`, `DateTime` or `Time` object. [contentful_model/#121](https://github.com/contentful/contentful_model/issues/121)
|
15
|
+
|
16
|
+
## 2.9.0 **YANKED**
|
17
|
+
|
18
|
+
Yanked due to faulty release
|
19
|
+
|
5
20
|
## 2.8.1
|
6
21
|
### Fixed
|
7
22
|
* Fixed deeply nested resources now also filter unresolvable entries. [#177](https://github.com/contentful/contentful.rb/issues/177)
|
data/lib/contentful/coercions.rb
CHANGED
@@ -10,7 +10,7 @@ module Contentful
|
|
10
10
|
end
|
11
11
|
|
12
12
|
# Coerces value
|
13
|
-
def coerce
|
13
|
+
def coerce(*)
|
14
14
|
value
|
15
15
|
end
|
16
16
|
end
|
@@ -18,7 +18,7 @@ module Contentful
|
|
18
18
|
# Coercion for String Types
|
19
19
|
class StringCoercion < BaseCoercion
|
20
20
|
# Coerces value to String
|
21
|
-
def coerce
|
21
|
+
def coerce(*)
|
22
22
|
value.to_s
|
23
23
|
end
|
24
24
|
end
|
@@ -32,7 +32,7 @@ module Contentful
|
|
32
32
|
# Coercion for Integer Types
|
33
33
|
class IntegerCoercion < BaseCoercion
|
34
34
|
# Coerces value to Integer
|
35
|
-
def coerce
|
35
|
+
def coerce(*)
|
36
36
|
value.to_i
|
37
37
|
end
|
38
38
|
end
|
@@ -40,7 +40,7 @@ module Contentful
|
|
40
40
|
# Coercion for Float Types
|
41
41
|
class FloatCoercion < BaseCoercion
|
42
42
|
# Coerces value to Float
|
43
|
-
def coerce
|
43
|
+
def coerce(*)
|
44
44
|
value.to_f
|
45
45
|
end
|
46
46
|
end
|
@@ -48,7 +48,7 @@ module Contentful
|
|
48
48
|
# Coercion for Boolean Types
|
49
49
|
class BooleanCoercion < BaseCoercion
|
50
50
|
# Coerces value to Boolean
|
51
|
-
def coerce
|
51
|
+
def coerce(*)
|
52
52
|
# rubocop:disable Style/DoubleNegation
|
53
53
|
!!value
|
54
54
|
# rubocop:enable Style/DoubleNegation
|
@@ -58,8 +58,9 @@ module Contentful
|
|
58
58
|
# Coercion for Date Types
|
59
59
|
class DateCoercion < BaseCoercion
|
60
60
|
# Coerces value to DateTime
|
61
|
-
def coerce
|
61
|
+
def coerce(*)
|
62
62
|
return nil if value.nil?
|
63
|
+
return value if value.is_a?(Date)
|
63
64
|
|
64
65
|
DateTime.parse(value)
|
65
66
|
end
|
@@ -68,7 +69,7 @@ module Contentful
|
|
68
69
|
# Coercion for Location Types
|
69
70
|
class LocationCoercion < BaseCoercion
|
70
71
|
# Coerces value to Location
|
71
|
-
def coerce
|
72
|
+
def coerce(*)
|
72
73
|
Location.new(value)
|
73
74
|
end
|
74
75
|
end
|
@@ -76,7 +77,7 @@ module Contentful
|
|
76
77
|
# Coercion for Object Types
|
77
78
|
class ObjectCoercion < BaseCoercion
|
78
79
|
# Coerces value to hash, symbolizing each key
|
79
|
-
def coerce
|
80
|
+
def coerce(*)
|
80
81
|
JSON.parse(JSON.dump(value), symbolize_names: true)
|
81
82
|
end
|
82
83
|
end
|
@@ -90,10 +91,73 @@ module Contentful
|
|
90
91
|
# Coercion for Array Types
|
91
92
|
class ArrayCoercion < BaseCoercion
|
92
93
|
# Coerces value for each element
|
93
|
-
def coerce
|
94
|
+
def coerce(*)
|
94
95
|
value.map do |e|
|
95
96
|
options[:coercion_class].new(e).coerce
|
96
97
|
end
|
97
98
|
end
|
98
99
|
end
|
100
|
+
|
101
|
+
# Coercion for StructuredText Types
|
102
|
+
class StructuredTextCoercion < BaseCoercion
|
103
|
+
# Resolves includes and removes unresolvable nodes
|
104
|
+
def coerce(configuration)
|
105
|
+
coerce_block(value, configuration)
|
106
|
+
end
|
107
|
+
|
108
|
+
private
|
109
|
+
|
110
|
+
def link?(node)
|
111
|
+
node['nodeClass'] == 'block' && node.key?('data')
|
112
|
+
end
|
113
|
+
|
114
|
+
def content_block?(node)
|
115
|
+
node['nodeClass'] == 'block' && node.key?('content')
|
116
|
+
end
|
117
|
+
|
118
|
+
def coerce_block(block, configuration)
|
119
|
+
return block unless block.is_a?(Hash) && block.key?('content')
|
120
|
+
|
121
|
+
invalid_nodes = []
|
122
|
+
block['content'].each_with_index do |node, index|
|
123
|
+
if link?(node)
|
124
|
+
link = coerce_link(node, configuration)
|
125
|
+
|
126
|
+
if !link.nil?
|
127
|
+
node['data'] = link
|
128
|
+
else
|
129
|
+
invalid_nodes << index
|
130
|
+
end
|
131
|
+
elsif content_block?(node)
|
132
|
+
node['content'] = coerce_block(node, configuration)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
invalid_nodes.each do |index|
|
137
|
+
block['content'].delete_at(index)
|
138
|
+
end
|
139
|
+
|
140
|
+
block
|
141
|
+
end
|
142
|
+
|
143
|
+
def coerce_link(node, configuration)
|
144
|
+
return node unless node.key?('data') && node['data'].key?('target')
|
145
|
+
return node unless node['data']['target']['sys']['type'] == 'Link'
|
146
|
+
|
147
|
+
return nil if Support.unresolvable?(node['data']['target'], configuration[:errors])
|
148
|
+
|
149
|
+
resource = Support.resource_for_link(
|
150
|
+
node['data']['target'],
|
151
|
+
configuration[:includes_for_single]
|
152
|
+
)
|
153
|
+
|
154
|
+
ResourceBuilder.new(
|
155
|
+
resource,
|
156
|
+
configuration,
|
157
|
+
configuration[:localized],
|
158
|
+
configuration[:depth] + 1,
|
159
|
+
configuration[:errors]
|
160
|
+
).run
|
161
|
+
end
|
162
|
+
end
|
99
163
|
end
|
data/lib/contentful/entry.rb
CHANGED
@@ -26,7 +26,15 @@ module Contentful
|
|
26
26
|
|
27
27
|
unless content_type.nil?
|
28
28
|
content_type_field = content_type.field_for(field_id)
|
29
|
-
|
29
|
+
coercion_configuration = @configuration.merge(
|
30
|
+
includes_for_single:
|
31
|
+
@configuration.fetch(:includes_for_single, []) + includes,
|
32
|
+
_entries_cache: entries,
|
33
|
+
localized: localized,
|
34
|
+
depth: @depth,
|
35
|
+
errors: errors
|
36
|
+
)
|
37
|
+
return content_type_field.coerce(value, coercion_configuration) unless content_type_field.nil?
|
30
38
|
end
|
31
39
|
|
32
40
|
super(field_id, value, includes, errors, entries)
|
data/lib/contentful/field.rb
CHANGED
@@ -7,17 +7,18 @@ module Contentful
|
|
7
7
|
class Field
|
8
8
|
# Coercions from Contentful Types to Ruby native types
|
9
9
|
KNOWN_TYPES = {
|
10
|
-
'String'
|
11
|
-
'Text'
|
12
|
-
'Symbol'
|
13
|
-
'Integer'
|
14
|
-
'Number'
|
15
|
-
'Boolean'
|
16
|
-
'Date'
|
17
|
-
'Location'
|
18
|
-
'Object'
|
19
|
-
'Array'
|
20
|
-
'Link'
|
10
|
+
'String' => StringCoercion,
|
11
|
+
'Text' => TextCoercion,
|
12
|
+
'Symbol' => SymbolCoercion,
|
13
|
+
'Integer' => IntegerCoercion,
|
14
|
+
'Number' => FloatCoercion,
|
15
|
+
'Boolean' => BooleanCoercion,
|
16
|
+
'Date' => DateCoercion,
|
17
|
+
'Location' => LocationCoercion,
|
18
|
+
'Object' => ObjectCoercion,
|
19
|
+
'Array' => ArrayCoercion,
|
20
|
+
'Link' => LinkCoercion,
|
21
|
+
'StructuredText' => StructuredTextCoercion
|
21
22
|
}
|
22
23
|
|
23
24
|
attr_reader :raw, :id, :name, :type, :link_type, :items, :required, :localized
|
@@ -34,13 +35,13 @@ module Contentful
|
|
34
35
|
end
|
35
36
|
|
36
37
|
# Coerces value to proper type
|
37
|
-
def coerce(value)
|
38
|
+
def coerce(value, configuration)
|
38
39
|
return value if type.nil?
|
39
40
|
return value if value.nil?
|
40
41
|
|
41
42
|
options = {}
|
42
43
|
options[:coercion_class] = KNOWN_TYPES[items.type] unless items.nil?
|
43
|
-
KNOWN_TYPES[type].new(value, options).coerce
|
44
|
+
KNOWN_TYPES[type].new(value, options).coerce(configuration)
|
44
45
|
end
|
45
46
|
end
|
46
47
|
end
|
data/lib/contentful/support.rb
CHANGED
data/lib/contentful/version.rb
CHANGED
data/spec/entry_spec.rb
CHANGED
@@ -513,4 +513,30 @@ describe Contentful::Entry do
|
|
513
513
|
}
|
514
514
|
end
|
515
515
|
end
|
516
|
+
|
517
|
+
describe 'structured text support' do
|
518
|
+
it 'properly serializes and resolves includes' do
|
519
|
+
vcr('entries/structured_text') {
|
520
|
+
entry = create_client(
|
521
|
+
space: 'jd7yc4wnatx3',
|
522
|
+
access_token: '6256b8ef7d66805ca41f2728271daf27e8fa6055873b802a813941a0fe696248',
|
523
|
+
raise_errors: true,
|
524
|
+
dynamic_entries: :auto
|
525
|
+
).entry('4BupPSmi4M02m0U48AQCSM')
|
526
|
+
|
527
|
+
expected_entry_occurrances = 2
|
528
|
+
embedded_entry_index = 1
|
529
|
+
entry.body['content'].each do |content|
|
530
|
+
if content['nodeType'] == 'embedded-entry-block'
|
531
|
+
expect(content['data']).to be_a Contentful::Entry
|
532
|
+
expect(content['data'].body).to eq "Embedded #{embedded_entry_index}"
|
533
|
+
expected_entry_occurrances -= 1
|
534
|
+
embedded_entry_index += 1
|
535
|
+
end
|
536
|
+
end
|
537
|
+
|
538
|
+
expect(expected_entry_occurrances).to eq 0
|
539
|
+
}
|
540
|
+
end
|
541
|
+
end
|
516
542
|
end
|
data/spec/field_spec.rb
CHANGED
@@ -84,6 +84,12 @@ describe Contentful::Field do
|
|
84
84
|
coercion = Contentful::DateCoercion.new(nil)
|
85
85
|
expect(coercion.coerce).to eq(nil)
|
86
86
|
end
|
87
|
+
|
88
|
+
it 'can coerce properly when value is already datetime' do
|
89
|
+
value = DateTime.new
|
90
|
+
coercion = Contentful::DateCoercion.new(value)
|
91
|
+
expect(coercion.coerce).to eq value
|
92
|
+
end
|
87
93
|
end
|
88
94
|
end
|
89
95
|
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://cdn.contentful.com/spaces/jd7yc4wnatx3/environments/master/content_types?limit=1000
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
X-Contentful-User-Agent:
|
11
|
+
- sdk contentful.rb/2.8.1; platform ruby/2.5.1; os macOS/16;
|
12
|
+
Authorization:
|
13
|
+
- Bearer 6256b8ef7d66805ca41f2728271daf27e8fa6055873b802a813941a0fe696248
|
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
|
+
User-Agent:
|
23
|
+
- http.rb/2.2.2
|
24
|
+
response:
|
25
|
+
status:
|
26
|
+
code: 200
|
27
|
+
message: OK
|
28
|
+
headers:
|
29
|
+
Access-Control-Allow-Headers:
|
30
|
+
- 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,X-Contentful-Enable-Alpha-Feature
|
31
|
+
Access-Control-Allow-Methods:
|
32
|
+
- GET,HEAD,OPTIONS
|
33
|
+
Access-Control-Allow-Origin:
|
34
|
+
- "*"
|
35
|
+
Access-Control-Expose-Headers:
|
36
|
+
- Etag
|
37
|
+
Access-Control-Max-Age:
|
38
|
+
- '86400'
|
39
|
+
Cache-Control:
|
40
|
+
- max-age=0
|
41
|
+
Content-Encoding:
|
42
|
+
- gzip
|
43
|
+
Content-Type:
|
44
|
+
- application/vnd.contentful.delivery.v1+json
|
45
|
+
Contentful-Api:
|
46
|
+
- cda_cached
|
47
|
+
Etag:
|
48
|
+
- W/"0ecb92174772cc7a40d4a981e109aaab"
|
49
|
+
Server:
|
50
|
+
- Contentful
|
51
|
+
X-Content-Type-Options:
|
52
|
+
- nosniff
|
53
|
+
X-Contentful-Region:
|
54
|
+
- us-east-1
|
55
|
+
X-Contentful-Request-Id:
|
56
|
+
- 1a2b79142c2ef390f65d8cb4f0c541e2
|
57
|
+
Content-Length:
|
58
|
+
- '459'
|
59
|
+
Accept-Ranges:
|
60
|
+
- bytes
|
61
|
+
Date:
|
62
|
+
- Thu, 23 Aug 2018 11:27:31 GMT
|
63
|
+
Via:
|
64
|
+
- 1.1 varnish
|
65
|
+
Age:
|
66
|
+
- '0'
|
67
|
+
Connection:
|
68
|
+
- close
|
69
|
+
X-Served-By:
|
70
|
+
- cache-mia17622-MIA
|
71
|
+
X-Cache:
|
72
|
+
- MISS
|
73
|
+
X-Cache-Hits:
|
74
|
+
- '0'
|
75
|
+
X-Timer:
|
76
|
+
- S1535023652.578501,VS0,VE253
|
77
|
+
Vary:
|
78
|
+
- Accept-Encoding
|
79
|
+
body:
|
80
|
+
encoding: ASCII-8BIT
|
81
|
+
string: !binary |-
|
82
|
+
H4sIAAAAAAAAA91VPW/CMBDd+RXIc0Em0DbKRis6VV1gasVg4kNycZzUNpQU8d9rOyRxoqJSFakfXvCdfffuXu6ZXafbRSpXKOruzNYYOs/AWGgsJcmR8e0v7B2dasKNP3CWWrHMGNgZnCVMG2uAceFgGhKb8cllLPK2YByUykhsscobhdMrxjqcsyzqnokVsqD1MvBiNTsUPXUZWxcYtf080+s8Hr0KordD21a59tXeNVosVMRAsgBKgXoZq1JuU6FBaIfsBcYSiAY6toSgAA/CHg57QTAb4Gg0ivB1PwyvHv2AdUa/FgBiw2QqEgN+EndFKwlRGmSbmlN5nXiYn3InYcMUS4UdicPlilpEmco4ye8YcPdZFinNq6qQIIkbvkmbeERBxZJlusiL6pClzVRPm/1+jXkq2m/A2DsV1I1fgDspSZnmySLlDcoQT2PC2ZsZiai7JFyBP2tIwsuaySOHpnOy4EcOUyMhMzZl1nomD7u5+z3Q+IcVpfQMlD6TnobRJe6HODhZTx8G/C89OQWVQ1kN+bRJ+3fV1ABpqOnBh/99aqrVeq43Qst1rNdG8zPY+nNt/xd/9q0wL8a8s++8A8NDyyriBwAA
|
83
|
+
http_version:
|
84
|
+
recorded_at: Thu, 23 Aug 2018 11:27:32 GMT
|
85
|
+
- request:
|
86
|
+
method: get
|
87
|
+
uri: https://cdn.contentful.com/spaces/jd7yc4wnatx3/environments/master/entries?sys.id=4BupPSmi4M02m0U48AQCSM
|
88
|
+
body:
|
89
|
+
encoding: US-ASCII
|
90
|
+
string: ''
|
91
|
+
headers:
|
92
|
+
X-Contentful-User-Agent:
|
93
|
+
- sdk contentful.rb/2.8.1; platform ruby/2.5.1; os macOS/16;
|
94
|
+
Authorization:
|
95
|
+
- Bearer 6256b8ef7d66805ca41f2728271daf27e8fa6055873b802a813941a0fe696248
|
96
|
+
Content-Type:
|
97
|
+
- application/vnd.contentful.delivery.v1+json
|
98
|
+
Accept-Encoding:
|
99
|
+
- gzip
|
100
|
+
Connection:
|
101
|
+
- close
|
102
|
+
Host:
|
103
|
+
- cdn.contentful.com
|
104
|
+
User-Agent:
|
105
|
+
- http.rb/2.2.2
|
106
|
+
response:
|
107
|
+
status:
|
108
|
+
code: 200
|
109
|
+
message: OK
|
110
|
+
headers:
|
111
|
+
Access-Control-Allow-Headers:
|
112
|
+
- 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,X-Contentful-Enable-Alpha-Feature
|
113
|
+
Access-Control-Allow-Methods:
|
114
|
+
- GET,HEAD,OPTIONS
|
115
|
+
Access-Control-Allow-Origin:
|
116
|
+
- "*"
|
117
|
+
Access-Control-Expose-Headers:
|
118
|
+
- Etag
|
119
|
+
Access-Control-Max-Age:
|
120
|
+
- '86400'
|
121
|
+
Cache-Control:
|
122
|
+
- max-age=0
|
123
|
+
Content-Encoding:
|
124
|
+
- gzip
|
125
|
+
Content-Type:
|
126
|
+
- application/vnd.contentful.delivery.v1+json
|
127
|
+
Contentful-Api:
|
128
|
+
- cda_cached
|
129
|
+
Etag:
|
130
|
+
- W/"e5e280b9148978c6597c59a64282d404"
|
131
|
+
Server:
|
132
|
+
- Contentful
|
133
|
+
X-Content-Type-Options:
|
134
|
+
- nosniff
|
135
|
+
X-Contentful-Region:
|
136
|
+
- us-east-1
|
137
|
+
X-Contentful-Request-Id:
|
138
|
+
- 152b5492a6f5a30dc61b85b2c8e38b98
|
139
|
+
Content-Length:
|
140
|
+
- '1194'
|
141
|
+
Accept-Ranges:
|
142
|
+
- bytes
|
143
|
+
Date:
|
144
|
+
- Thu, 23 Aug 2018 11:27:32 GMT
|
145
|
+
Via:
|
146
|
+
- 1.1 varnish
|
147
|
+
Age:
|
148
|
+
- '0'
|
149
|
+
Connection:
|
150
|
+
- close
|
151
|
+
X-Served-By:
|
152
|
+
- cache-mia17627-MIA
|
153
|
+
X-Cache:
|
154
|
+
- MISS
|
155
|
+
X-Cache-Hits:
|
156
|
+
- '0'
|
157
|
+
X-Timer:
|
158
|
+
- S1535023652.232526,VS0,VE316
|
159
|
+
Vary:
|
160
|
+
- Accept-Encoding
|
161
|
+
body:
|
162
|
+
encoding: ASCII-8BIT
|
163
|
+
string: !binary |-
|
164
|
+
H4sIAAAAAAAAA+1aW3PaOBR+z6/w+HnJGBco8MYy6U4mzXSzhNnd7vRBWGqiYsusLNMwnfz36uKLJNvATiGkrHlIsJHOOfp0rtL5duE4brJJ3LHzjX/lD2yzQvzJnVAKNi5/9/yLGMNiBkL+viufkiVe8QdPPoQ4wkz85KlnzFAkCP4jCSqyFhfJKVmBQLDKR6iXmizihXyZy/Qek6UreJYfzp0s7zOZZ5KiNQBDsZwv8O0m6H0lgD29EavKP8/Fd7lO9XHVnN6v6er3WYR7t54fefPecHI3nd1q9AvBrgijG/2HgCLAEJwIXFzf6w473rDj+/ddb9zrj/vdy0Fv9FGfkK5g/YQ3Y2849vzLkd83JiCyxjQmESKCx24M1ZIikDBEbYj2xfdK47kTQ4rWOMEx4dL5GrRBTBiXOduy3XLvK9tUo1urAQm7RwnbvfdhHIBQmgAinfksn1Coh/sZoxCWFiNUxiUgUlYThs47vvUpRYm+vYsYbuxtypAoLCXXPh0TSZxrBhCTNQ3N9LSJhPjZJiNJRYAupW1+MjHK6K1BmMp1zOIIOY8IQEweLG3JhpIYotzuGHpizaOmIUgET1cOM6xX0CotUFGuSObqrDKZOt0KPzms4LXg27g0mVnw2ficAubKIuQmnQjaFaDggYLVY0Wqg0Fb2XyXAfqAbA+mFKEmZuQ/SJgyJz2i8ef36/XT9AO+vr3Gg2g5BLiyBDVzWyQpmOoRRTn2ithVra2+eUFrrV3tqdQIRQsEIYId7uXppqMM0fY2B9OoF0RZ+sQkXbxmt+hXVOFVIl1jUPUBSxp6Y/wrTDZPEhZxCCsIFKPixRcUyIxMhMFqJBID7Wgk3lUikpTKjJWNnE9lhi/gzQ9pe8fSCMzLFhycRicUbz0PzFXxrIP8z6AWKYGI8kBvV4vaBh3TW2xn37qMbBvsFF363X1LmFqbb6FtoS1tfN+KsBKcfrxs6X98N7rr3Qzwn7O/r+f+h3nizcFdrc5ynd9yCJKvxjgIa8sWDoudylXSOMMZnG3ZUqtTrR88hB+UFSEFX538HM4uc2XAOt/jnENmehXrlNgVRVarxUc7650QJyWrdBHi5BFBRzrCcYv30fD+v0F7hOzpX//xt7+WsM+up5to0JsED+jmphbXNnkq090iVTRuSg5xK3O2yZOM8FFM0dmFeM0qjdBrpCswDlJ5w6wnNuaJcjGkIJjn3eq/+CsZuIjSmO7TGKAudkjM/kBJHK7Bgl/HajfIeTEk6VWvZyFiAIfW/awiucttNNVZzbWVvUZMgjCF/O636KdQpVjeDaGfcht9F8o2a3siOHR6h0Zpz03iZrR2dUZwutt7I8wSykj29r98a+yR4Oy3d0n43uVgaDQ98CmNfRKysUJOGeh9EkLvGjslmpHd0i2xK6JYylJ2aRhxUC9OTWS1vgnZbFN47ebOieZ1bD04MCRt7p8o9CT38ta1uiajuZKGToqspSjT0ppuCs4w65dwr7LLRKdbMi38S45OeUxYYyg/m0ntcTD0AyY1unzb/Y8mVTelNSnHrWlG44qrO91XblJ+jUlJW/7E/z5fPF98BxAE8RQdKAAA
|
165
|
+
http_version:
|
166
|
+
recorded_at: Thu, 23 Aug 2018 11:27:32 GMT
|
167
|
+
recorded_with: VCR 4.0.0
|
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: 2.
|
4
|
+
version: 2.9.1
|
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: 2018-08-
|
13
|
+
date: 2018-08-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: http
|
@@ -337,6 +337,7 @@ files:
|
|
337
337
|
- doc/Contentful/ServiceUnavailable.html
|
338
338
|
- doc/Contentful/Space.html
|
339
339
|
- doc/Contentful/StringCoercion.html
|
340
|
+
- doc/Contentful/StructuredTextCoercion.html
|
340
341
|
- doc/Contentful/Support.html
|
341
342
|
- doc/Contentful/SymbolCoercion.html
|
342
343
|
- doc/Contentful/Sync.html
|
@@ -452,6 +453,7 @@ files:
|
|
452
453
|
- spec/fixtures/vcr_cassettes/entries.yml
|
453
454
|
- spec/fixtures/vcr_cassettes/entries/issue_117.yml
|
454
455
|
- spec/fixtures/vcr_cassettes/entries/issue_125.yml
|
456
|
+
- spec/fixtures/vcr_cassettes/entries/structured_text.yml
|
455
457
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
|
456
458
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter_deeply_nested.yml
|
457
459
|
- spec/fixtures/vcr_cassettes/entry.yml
|
@@ -593,6 +595,7 @@ test_files:
|
|
593
595
|
- spec/fixtures/vcr_cassettes/entries.yml
|
594
596
|
- spec/fixtures/vcr_cassettes/entries/issue_117.yml
|
595
597
|
- spec/fixtures/vcr_cassettes/entries/issue_125.yml
|
598
|
+
- spec/fixtures/vcr_cassettes/entries/structured_text.yml
|
596
599
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
|
597
600
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter_deeply_nested.yml
|
598
601
|
- spec/fixtures/vcr_cassettes/entry.yml
|