contentful 2.9.1 → 2.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +0 -5
- data/lib/contentful/coercions.rb +8 -3
- data/lib/contentful/version.rb +1 -1
- data/spec/entry_spec.rb +44 -0
- data/spec/fixtures/vcr_cassettes/entries/structured_text_nested_fields.yml +167 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '086e72b9a7ea3bbc5921407727c14aff220358887fea2bb80180a7e33a977b8e'
|
4
|
+
data.tar.gz: 5580a3b84e07ee8346c6b0cbce69fcc7b65d749a091ccc2abc859ca37f3f0708
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3417c39de8d5432d4b61590812ba6dffd85d350e4bcd1fa4635a404a96abfd7415c37cbdc7bd525dff8120c0224292dc9730e9ee2f1edcd3c4493d36aae14a9c
|
7
|
+
data.tar.gz: 51a479869d7265fb85aa154d0541e94f3b9bce0da935e658f8fa5f4d6c66b22efe8db4b3a6b2899e15ff99192a152341cee1adff70380effd470874b7ab24933
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
+
## 2.9.2
|
6
|
+
### Added
|
7
|
+
* Added support for `StructuredText` inline Entry include resolution.
|
8
|
+
|
5
9
|
## 2.9.1
|
6
10
|
|
7
11
|
**Note:** This release includes support for `StructuredText`, this is an **alpha** feature and changes are to be expected. Further releases of this feature
|
data/README.md
CHANGED
@@ -214,11 +214,6 @@ client = Contentful::Client.new(
|
|
214
214
|
<td><code>'en-US'</code></td>
|
215
215
|
<td>Defines default locale for the client.</td>
|
216
216
|
</tr>
|
217
|
-
<tr>
|
218
|
-
<td><code>environment</code></td>
|
219
|
-
<td><code>'master'</code></td>
|
220
|
-
<td>Defines default environment to access.</td>
|
221
|
-
</tr>
|
222
217
|
<tr>
|
223
218
|
<td><code>secure</code></td>
|
224
219
|
<td><code>true</code></td>
|
data/lib/contentful/coercions.rb
CHANGED
@@ -108,17 +108,18 @@ module Contentful
|
|
108
108
|
private
|
109
109
|
|
110
110
|
def link?(node)
|
111
|
-
node
|
111
|
+
!node.fetch('data', {}).empty? && node['data']['target']
|
112
112
|
end
|
113
113
|
|
114
114
|
def content_block?(node)
|
115
|
-
node
|
115
|
+
!node.fetch('content', []).empty?
|
116
116
|
end
|
117
117
|
|
118
118
|
def coerce_block(block, configuration)
|
119
119
|
return block unless block.is_a?(Hash) && block.key?('content')
|
120
120
|
|
121
121
|
invalid_nodes = []
|
122
|
+
coerced_nodes = {}
|
122
123
|
block['content'].each_with_index do |node, index|
|
123
124
|
if link?(node)
|
124
125
|
link = coerce_link(node, configuration)
|
@@ -129,10 +130,14 @@ module Contentful
|
|
129
130
|
invalid_nodes << index
|
130
131
|
end
|
131
132
|
elsif content_block?(node)
|
132
|
-
|
133
|
+
coerced_nodes[index] = coerce_block(node, configuration)
|
133
134
|
end
|
134
135
|
end
|
135
136
|
|
137
|
+
coerced_nodes.each do |index, coerced_node|
|
138
|
+
block['content'][index] = coerced_node
|
139
|
+
end
|
140
|
+
|
136
141
|
invalid_nodes.each do |index|
|
137
142
|
block['content'].delete_at(index)
|
138
143
|
end
|
data/lib/contentful/version.rb
CHANGED
data/spec/entry_spec.rb
CHANGED
@@ -538,5 +538,49 @@ describe Contentful::Entry do
|
|
538
538
|
expect(expected_entry_occurrances).to eq 0
|
539
539
|
}
|
540
540
|
end
|
541
|
+
|
542
|
+
it 'respects content in data attribute if its not a Link' do
|
543
|
+
vcr('entries/structured_text_nested_fields') {
|
544
|
+
entry = create_client(
|
545
|
+
space: 'jd7yc4wnatx3',
|
546
|
+
access_token: '6256b8ef7d66805ca41f2728271daf27e8fa6055873b802a813941a0fe696248',
|
547
|
+
raise_errors: true,
|
548
|
+
dynamic_entries: :auto
|
549
|
+
).entry('6NGLswCREsGA28kGouScyY')
|
550
|
+
|
551
|
+
expect(entry.body['content'][0]).to eq({
|
552
|
+
'data' => {},
|
553
|
+
'content' => [
|
554
|
+
{'marks' => [], 'value' => 'A link to ', 'nodeType' => 'text', 'nodeClass' => 'text'},
|
555
|
+
{
|
556
|
+
'data' => {'uri' => 'https://google.com'},
|
557
|
+
'content' => [{'marks' => [], 'value' => 'google', 'nodeType' => 'text', 'nodeClass' => 'text'}],
|
558
|
+
'nodeType' => 'hyperlink',
|
559
|
+
'nodeClass' => 'inline'
|
560
|
+
},
|
561
|
+
{'marks' => [], 'value' => '', 'nodeType' => 'text', 'nodeClass' => 'text'}
|
562
|
+
],
|
563
|
+
'nodeType' => 'paragraph',
|
564
|
+
'nodeClass' => 'block'
|
565
|
+
})
|
566
|
+
}
|
567
|
+
end
|
568
|
+
|
569
|
+
it 'supports includes in nested fields' do
|
570
|
+
vcr('entries/structured_text_nested_fields') {
|
571
|
+
entry = create_client(
|
572
|
+
space: 'jd7yc4wnatx3',
|
573
|
+
access_token: '6256b8ef7d66805ca41f2728271daf27e8fa6055873b802a813941a0fe696248',
|
574
|
+
raise_errors: true,
|
575
|
+
dynamic_entries: :auto
|
576
|
+
).entry('6NGLswCREsGA28kGouScyY')
|
577
|
+
|
578
|
+
expect(entry.body['content'][3]['nodeType']).to eq('unordered-list')
|
579
|
+
expect(entry.body['content'][3]['content'][2]['content'][0]['data'].is_a?(Contentful::Entry)).to be_truthy
|
580
|
+
|
581
|
+
expect(entry.body['content'][4]['nodeType']).to eq('ordered-list')
|
582
|
+
expect(entry.body['content'][4]['content'][2]['content'][0]['data'].is_a?(Contentful::Entry)).to be_truthy
|
583
|
+
}
|
584
|
+
end
|
541
585
|
end
|
542
586
|
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.9.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
|
+
- 3c7c404eef18163c9a6b5d49eb95e0ed
|
57
|
+
Content-Length:
|
58
|
+
- '459'
|
59
|
+
Accept-Ranges:
|
60
|
+
- bytes
|
61
|
+
Date:
|
62
|
+
- Wed, 12 Sep 2018 11:18:32 GMT
|
63
|
+
Via:
|
64
|
+
- 1.1 varnish
|
65
|
+
Age:
|
66
|
+
- '0'
|
67
|
+
Connection:
|
68
|
+
- close
|
69
|
+
X-Served-By:
|
70
|
+
- cache-hhn1539-HHN
|
71
|
+
X-Cache:
|
72
|
+
- MISS
|
73
|
+
X-Cache-Hits:
|
74
|
+
- '0'
|
75
|
+
X-Timer:
|
76
|
+
- S1536751113.535747,VS0,VE319
|
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: Wed, 12 Sep 2018 11:18:31 GMT
|
85
|
+
- request:
|
86
|
+
method: get
|
87
|
+
uri: https://cdn.contentful.com/spaces/jd7yc4wnatx3/environments/master/entries?sys.id=6NGLswCREsGA28kGouScyY
|
88
|
+
body:
|
89
|
+
encoding: US-ASCII
|
90
|
+
string: ''
|
91
|
+
headers:
|
92
|
+
X-Contentful-User-Agent:
|
93
|
+
- sdk contentful.rb/2.9.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/"ad6896d8b4604d1307178a506ce1b102"
|
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
|
+
- f59d940c76009e6aea7642be6cee10d5
|
139
|
+
Content-Length:
|
140
|
+
- '1409'
|
141
|
+
Accept-Ranges:
|
142
|
+
- bytes
|
143
|
+
Date:
|
144
|
+
- Wed, 12 Sep 2018 11:18:33 GMT
|
145
|
+
Via:
|
146
|
+
- 1.1 varnish
|
147
|
+
Age:
|
148
|
+
- '4243'
|
149
|
+
Connection:
|
150
|
+
- close
|
151
|
+
X-Served-By:
|
152
|
+
- cache-hhn1524-HHN
|
153
|
+
X-Cache:
|
154
|
+
- HIT
|
155
|
+
X-Cache-Hits:
|
156
|
+
- '1'
|
157
|
+
X-Timer:
|
158
|
+
- S1536751113.010665,VS0,VE1
|
159
|
+
Vary:
|
160
|
+
- Accept-Encoding
|
161
|
+
body:
|
162
|
+
encoding: ASCII-8BIT
|
163
|
+
string: !binary |-
|
164
|
+
H4sIAAAAAAAAA+0ay27bOPCerxB0XruS67i2b0GQDYLNtmidoGgXPTASHavWwyvRbowi/14+RJqkSEppjcBNrUNiUcOZ4XBeHM73E8/zq23lT73v+Cd+QdsVxG/+WVmCrY/HHv8iMKhAIMXjIX2rlskKvwT0JU2yBJFPAXtPEMwIwv8oQoZWo0IpVSsQEVIcgg1KvJABOsh5uk7ypU9o7h5MPV/e1DzPKEYNIInJcr7Gb7bR8FsO0MNrsir+PIrfdJ3s8dmc0dvL6+rb+YeL6vJsMF5eFutZtP0k4ReMXeSo3MofohICBOMzIhd/EITjXjDpheFNMJkOg+kw7J++Dj/LE9ar2DBhcBMG02A4DUf9yUSdAPNNUhZ5BnNCo12GbEkZqBAsdRF1le+FRLNVhiXcJFVS5Ji7gSTaqMgR5rnesna+u/J2LuE1akCFbmCF2vc+LSKQUhOAee92xicI9fDnCUzjncUQlfFzkNEphIR3lWOlhN4MredzD+SxR/S2knf7roi3+q7VgsHDzHC4MsoiorSwogAyWVLYWm1tKMhnHQ1FlYESM4YpflFFVuPbgHTNnIFHzMxDhaepTg2YFzHkRojgA7JDnaegIhR9CqaYMsHVWJOFcS6DBgK6rHWZEBILhFbV9NWr+6K4T2E/KrImQSNJjMIlSkLDJE5K2y1SCiLEyhgzCosCdhKrgGwRLYHbeTvyxh7z1sukF9i9lkQBjJxSLgXthOp+U85dN9Ytvp3o7KzsRw81xWoISdmbFSjBfQlWiwZXqnDusG9ZqrLR5KKr1T6N3eo3qAY9i8LPigx6/68LHBo9q5+g7ByI6tt3VnApVN+wuwRItzm3KlHhHLQa/ZYWutBznlrFXJv3+5um0+I7WT0B0n0SGeNPh3BH6YiQt86LMoYltn9yTGgouoK7sw+gJJQwZM4uOHbdJPl4wzTFMmVW3D6hyYvFLxBAEyNGJhR/mCYV6lnF1xpyKOFmvmfaZnv4ocv86ZhxgIoJ8gItYOkdFZQr/VFBHa7PR6C8h/rRWxYdtRC5tKJ/5O91tWE4KYv59WbzcP4uufr3KhllyzFInB4SE3Acj3V6SqmEVSyMxyc2z+Sa3F8MPoVNaPUTBMzkfoSE3DmHABNRxim17rklQfx8cQVmdzCOYdzD5ZFy22Nho+mna5kq4c4VYswYbOJ2e3wqkDavT4Bs6CmCP2I3X0SW8KRTsIicPZKgNEywNS855tvMtPdqO/OkxBVJa7LIKNZerrVyokB3KDcReFscMaa51D0cc21DWG71ujatOUSHXkEcQ44nQJt5GE3jhZ4ADarOvMz+E+zTz39P3g//GSUfZ5+ubgfvbqvgFrxvxCnu5Dgb9d2i4e5RhcSeS76LPCbY7B7ZWeYV/v5ZgskxwVY0tuUyhcMe6nHpz0uw68rp4afX7gNei95107cux3I99WzEVYXUgV8RdJUpvWIzBrU9CrZZUzCln7uDvjHKm6bQgNBeHeZVrwhfPRvXSvEUd19hRDtwiPCad9IESNcRMtbQE4pNFJfYFbdnpb1HOT/p/G13iKqxGIpFshSU1StriYtoTfuN5O1XcQsQwTlHzf6Tv5SAn+RRuo6h1HnGMqZd+8tOPwxlVGP3GEZrLri6y6StPWSEXWcXmapHSiGje3XX2k2GyRv6yca9AW0PG55OB0F/ND6V+8nwFENHmT5lpE2x95TZJevoK8OTnOVpLV/e9bMpai/rpipZqcOMtiXyh5+VDT1m9nV059TeaSb0hGeaWq+HxKO6EkvPmXJPZ+o7wwTrVjL/oq4ee+GOqLA9Lp0XZVIdznO/YFKT/pvwiSZlmnI0Kc83Hp0V4z9wkxoYTIra8hf89/Hk8eQHimwRyEctAAA=
|
165
|
+
http_version:
|
166
|
+
recorded_at: Wed, 12 Sep 2018 11:18:31 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.9.
|
4
|
+
version: 2.9.2
|
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-
|
13
|
+
date: 2018-09-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: http
|
@@ -454,6 +454,7 @@ files:
|
|
454
454
|
- spec/fixtures/vcr_cassettes/entries/issue_117.yml
|
455
455
|
- spec/fixtures/vcr_cassettes/entries/issue_125.yml
|
456
456
|
- spec/fixtures/vcr_cassettes/entries/structured_text.yml
|
457
|
+
- spec/fixtures/vcr_cassettes/entries/structured_text_nested_fields.yml
|
457
458
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
|
458
459
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter_deeply_nested.yml
|
459
460
|
- spec/fixtures/vcr_cassettes/entry.yml
|
@@ -596,6 +597,7 @@ test_files:
|
|
596
597
|
- spec/fixtures/vcr_cassettes/entries/issue_117.yml
|
597
598
|
- spec/fixtures/vcr_cassettes/entries/issue_125.yml
|
598
599
|
- spec/fixtures/vcr_cassettes/entries/structured_text.yml
|
600
|
+
- spec/fixtures/vcr_cassettes/entries/structured_text_nested_fields.yml
|
599
601
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
|
600
602
|
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter_deeply_nested.yml
|
601
603
|
- spec/fixtures/vcr_cassettes/entry.yml
|