contentful 2.4.0 → 2.5.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/contentful/base_resource.rb +1 -1
- data/lib/contentful/entry.rb +8 -6
- data/lib/contentful/fields_resource.rb +11 -9
- data/lib/contentful/resource_builder.rb +17 -10
- data/lib/contentful/support.rb +4 -0
- data/lib/contentful/version.rb +1 -1
- data/spec/entry_spec.rb +9 -0
- data/spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml +159 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4bdb550ac66dfda8c5fe4ced4b3bde07415da83
|
4
|
+
data.tar.gz: 65aee7c14dc1473b04af7dc44815573b296db99b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cd6e8ae3e2dcf16568e11cc92df868e829e7eee8d44c22ab968b59233c6dfdece51c0fe34a05102eb4a7d35ea78d187c9d9332afdd371f019ec80cdb043a26e
|
7
|
+
data.tar.gz: d78e37cdae252aa9b8d7da50e588b7fd5c87982dc81db77907e520160c02d18a768be890e398975b7f31f8088c884666b3abd6e2f54b14310000da3565d3942e
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
+
## 2.5.0
|
6
|
+
### Added
|
7
|
+
* Add filtering of invalid entries from API responses.
|
8
|
+
|
5
9
|
## 2.4.0
|
6
10
|
### Added
|
7
11
|
* Added `reuse_entries` option to client configuration. This is a performance improvement, which is disabled by default due to backwards compatibility. All users are highly encouraged to enable it and test it in their applications. [#164](https://github.com/contentful/contentful.rb/pull/164)
|
@@ -6,7 +6,7 @@ module Contentful
|
|
6
6
|
attr_reader :raw, :default_locale, :sys
|
7
7
|
|
8
8
|
# rubocop:disable Metrics/ParameterLists
|
9
|
-
def initialize(item, configuration = {}, _localized = false, _includes = [], entries = {}, depth = 0)
|
9
|
+
def initialize(item, configuration = {}, _localized = false, _includes = [], entries = {}, depth = 0, _errors = [])
|
10
10
|
entries["#{item['sys']['type']}:#{item['sys']['id']}"] = self if entries && item.key?('sys')
|
11
11
|
@raw = item
|
12
12
|
@default_locale = configuration[:default_locale]
|
data/lib/contentful/entry.rb
CHANGED
@@ -15,9 +15,11 @@ module Contentful
|
|
15
15
|
|
16
16
|
private
|
17
17
|
|
18
|
-
def coerce(field_id, value, includes, entries = {})
|
19
|
-
|
20
|
-
|
18
|
+
def coerce(field_id, value, includes, errors, entries = {})
|
19
|
+
if Support.link?(value) && !Support.unresolvable?(value, errors)
|
20
|
+
return build_nested_resource(value, includes, entries)
|
21
|
+
end
|
22
|
+
return coerce_link_array(value, includes, errors, entries) if Support.link_array?(value)
|
21
23
|
|
22
24
|
content_type_key = Support.snakify('contentType', @configuration[:use_camel_case])
|
23
25
|
content_type = ContentTypeCache.cache_get(sys[:space].id, sys[content_type_key.to_sym].id)
|
@@ -27,13 +29,13 @@ module Contentful
|
|
27
29
|
return content_type_field.coerce(value) unless content_type_field.nil?
|
28
30
|
end
|
29
31
|
|
30
|
-
super(field_id, value, includes, entries)
|
32
|
+
super(field_id, value, includes, errors, entries)
|
31
33
|
end
|
32
34
|
|
33
|
-
def coerce_link_array(value, includes, entries)
|
35
|
+
def coerce_link_array(value, includes, errors, entries)
|
34
36
|
items = []
|
35
37
|
value.each do |link|
|
36
|
-
items << build_nested_resource(link, includes, entries)
|
38
|
+
items << build_nested_resource(link, includes, entries) unless Support.unresolvable?(link, errors)
|
37
39
|
end
|
38
40
|
|
39
41
|
items
|
@@ -7,11 +7,11 @@ module Contentful
|
|
7
7
|
attr_reader :localized
|
8
8
|
|
9
9
|
# rubocop:disable Metrics/ParameterLists
|
10
|
-
def initialize(item, _configuration, localized = false, includes = [], entries = {},
|
10
|
+
def initialize(item, _configuration, localized = false, includes = [], entries = {}, depth = 0, errors = [])
|
11
11
|
super
|
12
12
|
|
13
13
|
@localized = localized
|
14
|
-
@fields = hydrate_fields(includes, entries)
|
14
|
+
@fields = hydrate_fields(includes, entries, errors)
|
15
15
|
define_fields_methods!
|
16
16
|
end
|
17
17
|
|
@@ -56,7 +56,7 @@ module Contentful
|
|
56
56
|
def marshal_load(raw_object)
|
57
57
|
super(raw_object)
|
58
58
|
@localized = raw_object[:localized]
|
59
|
-
@fields = hydrate_fields(raw_object[:configuration].fetch(:includes_for_single, []), {})
|
59
|
+
@fields = hydrate_fields(raw_object[:configuration].fetch(:includes_for_single, []), {}, [])
|
60
60
|
define_fields_methods!
|
61
61
|
end
|
62
62
|
|
@@ -82,7 +82,7 @@ module Contentful
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
def hydrate_localized_fields(includes, entries)
|
85
|
+
def hydrate_localized_fields(includes, errors, entries)
|
86
86
|
locale = internal_resource_locale
|
87
87
|
result = { locale => {} }
|
88
88
|
raw['fields'].each do |name, locales|
|
@@ -93,6 +93,7 @@ module Contentful
|
|
93
93
|
name,
|
94
94
|
value,
|
95
95
|
includes,
|
96
|
+
errors,
|
96
97
|
entries
|
97
98
|
)
|
98
99
|
end
|
@@ -101,7 +102,7 @@ module Contentful
|
|
101
102
|
result
|
102
103
|
end
|
103
104
|
|
104
|
-
def hydrate_nonlocalized_fields(includes, entries)
|
105
|
+
def hydrate_nonlocalized_fields(includes, errors, entries)
|
105
106
|
result = { locale => {} }
|
106
107
|
locale = internal_resource_locale
|
107
108
|
raw['fields'].each do |name, value|
|
@@ -110,6 +111,7 @@ module Contentful
|
|
110
111
|
name,
|
111
112
|
value,
|
112
113
|
includes,
|
114
|
+
errors,
|
113
115
|
entries
|
114
116
|
)
|
115
117
|
end
|
@@ -117,19 +119,19 @@ module Contentful
|
|
117
119
|
result
|
118
120
|
end
|
119
121
|
|
120
|
-
def hydrate_fields(includes, entries)
|
122
|
+
def hydrate_fields(includes, entries, errors)
|
121
123
|
return {} unless raw.key?('fields')
|
122
124
|
|
123
125
|
if localized
|
124
|
-
hydrate_localized_fields(includes, entries)
|
126
|
+
hydrate_localized_fields(includes, errors, entries)
|
125
127
|
else
|
126
|
-
hydrate_nonlocalized_fields(includes, entries)
|
128
|
+
hydrate_nonlocalized_fields(includes, errors, entries)
|
127
129
|
end
|
128
130
|
end
|
129
131
|
|
130
132
|
protected
|
131
133
|
|
132
|
-
def coerce(_field_id, value, _includes, _entries)
|
134
|
+
def coerce(_field_id, value, _includes, _errors, _entries)
|
133
135
|
value
|
134
136
|
end
|
135
137
|
end
|
@@ -40,7 +40,7 @@ module Contentful
|
|
40
40
|
@depth = depth
|
41
41
|
@endpoint = endpoint
|
42
42
|
@configuration = configuration
|
43
|
-
@
|
43
|
+
@resource_cache = configuration[:_entries_cache] || {}
|
44
44
|
end
|
45
45
|
|
46
46
|
# Starts the parsing process.
|
@@ -57,8 +57,11 @@ module Contentful
|
|
57
57
|
|
58
58
|
def build_array
|
59
59
|
includes = fetch_includes
|
60
|
+
errors = fetch_errors
|
61
|
+
|
60
62
|
result = json['items'].map do |item|
|
61
|
-
|
63
|
+
next if Support.unresolvable?(item, errors)
|
64
|
+
build_item(item, includes, errors)
|
62
65
|
end
|
63
66
|
array_class = fetch_array_class
|
64
67
|
array_class.new(json.dup.merge('items' => result), @configuration, endpoint)
|
@@ -69,29 +72,33 @@ module Contentful
|
|
69
72
|
build_item(json, includes)
|
70
73
|
end
|
71
74
|
|
72
|
-
def build_item(item, includes = [])
|
75
|
+
def build_item(item, includes = [], errors = [])
|
73
76
|
buildables = %w(Entry Asset ContentType Space DeletedEntry DeletedAsset)
|
74
77
|
item_type = buildables.detect { |b| b.to_s == item['sys']['type'] }
|
75
78
|
fail UnparsableResource, 'Item type is not known, could not parse' if item_type.nil?
|
76
79
|
item_class = resource_class(item)
|
77
80
|
|
78
81
|
reuse_entries = @configuration.fetch(:reuse_entries, false)
|
79
|
-
|
82
|
+
resource_cache = @resource_cache ? @resource_cache : {}
|
80
83
|
|
81
84
|
id = "#{item['sys']['type']}:#{item['sys']['id']}"
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
85
|
+
resource = if reuse_entries && resource_cache.key?(id)
|
86
|
+
resource_cache[id]
|
87
|
+
else
|
88
|
+
item_class.new(item, @configuration, localized?, includes, resource_cache, depth, errors)
|
89
|
+
end
|
87
90
|
|
88
|
-
|
91
|
+
resource
|
89
92
|
end
|
90
93
|
|
91
94
|
def fetch_includes
|
92
95
|
Support.includes_from_response(json)
|
93
96
|
end
|
94
97
|
|
98
|
+
def fetch_errors
|
99
|
+
json.fetch('errors', [])
|
100
|
+
end
|
101
|
+
|
95
102
|
def resource_class(item)
|
96
103
|
return fetch_custom_resource_class(item) if %w(Entry DeletedEntry Asset DeletedAsset).include?(item['sys']['type'])
|
97
104
|
resource_mapping[item['sys']['type']]
|
data/lib/contentful/support.rb
CHANGED
data/lib/contentful/version.rb
CHANGED
data/spec/entry_spec.rb
CHANGED
@@ -484,6 +484,15 @@ describe Contentful::Entry do
|
|
484
484
|
expect(entry.decimal).to eq 12.3
|
485
485
|
}
|
486
486
|
end
|
487
|
+
|
488
|
+
it 'unresolvable entries get filtered from results' do
|
489
|
+
vcr('entries/unresolvable_filter') {
|
490
|
+
client = create_client(space: '011npgaszg5o', access_token: '42c9d93410a7319e9a735671fc1e415348f65e94a99fc768b70a7c649859d4fd', dynamic_entries: :auto)
|
491
|
+
entry = client.entry('1HR1QvURo4MoSqO0eqmUeO')
|
492
|
+
|
493
|
+
expect(entry.modules.size).to eq 2
|
494
|
+
}
|
495
|
+
end
|
487
496
|
end
|
488
497
|
|
489
498
|
describe 'camel case' do
|
@@ -0,0 +1,159 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://cdn.contentful.com/spaces/011npgaszg5o/content_types?limit=1000
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
X-Contentful-User-Agent:
|
11
|
+
- sdk contentful.rb/2.4.0; platform ruby/2.4.1; os macOS/16;
|
12
|
+
Authorization:
|
13
|
+
- Bearer 42c9d93410a7319e9a735671fc1e415348f65e94a99fc768b70a7c649859d4fd
|
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
|
+
Etag:
|
46
|
+
- W/"6b02f038bad264826a59207504c67570"
|
47
|
+
Server:
|
48
|
+
- Contentful
|
49
|
+
X-Content-Type-Options:
|
50
|
+
- nosniff
|
51
|
+
X-Contentful-Request-Id:
|
52
|
+
- 84495dc18031407c9c5592dd0e65d3f9
|
53
|
+
Content-Length:
|
54
|
+
- '1378'
|
55
|
+
Accept-Ranges:
|
56
|
+
- bytes
|
57
|
+
Date:
|
58
|
+
- Mon, 05 Mar 2018 15:21:05 GMT
|
59
|
+
Via:
|
60
|
+
- 1.1 varnish
|
61
|
+
Age:
|
62
|
+
- '0'
|
63
|
+
Connection:
|
64
|
+
- close
|
65
|
+
X-Served-By:
|
66
|
+
- cache-hhn1543-HHN
|
67
|
+
X-Cache:
|
68
|
+
- MISS
|
69
|
+
X-Cache-Hits:
|
70
|
+
- '0'
|
71
|
+
X-Timer:
|
72
|
+
- S1520263264.974790,VS0,VE1423
|
73
|
+
Vary:
|
74
|
+
- Accept-Encoding
|
75
|
+
body:
|
76
|
+
encoding: ASCII-8BIT
|
77
|
+
string: !binary |-
|
78
|
+
H4sIAAAAAAAAA+1bXXObOBR9z69geN5k7DROkzx0xutuJ93J7nRqtw/dyYMCiq1GRiyI7Lqd/PfqwwIJCcfYODUunskHXAl0uNxzz5Xk70ee56eL1L/yvrN/2QFdxJAd+cMkAQufnXv6jbehhALMzvd74jB9QDE7kgcYzREVtp48gSic80v+Iy4pL1y6j7hXGoOA30y1kCe10fAT4qQa1Q2KHnw+guLjY3Zushz1WFyx1ACFHFCv34/iKUi/TQeE41Kfp/x/gVR+fNknABROSbLQrpgPZUQiCiMq7qx1DBLIOoVD/kD8017/4rh3etw/n/QHV4PeVe/05HJw+UXvkMVhvQ4JfEQpIhF/4ssB5yP3Q5TGGCzeIYgFaoooLsbnR2AuvDsqA/NDmAYJiqm8cJRhrED59/xihT/5EzI8Jp+VeSfeKL/bxBiEMCmHjhfzO4INj/mYBACjb5ADoEkGdXf6Cfw3Q4nbxsCDOyxs9wCnZkfCXlLmGGVzed2BKsXZ1BydeoRjy7IuJntszYNawrsVf5evR5sDkWRJasSZetibheHZyWDwuk4Y2h0aCUMTVheEbmppaxAWxOVgFjQHUzNV5Xz53jZVJkCDLXfHLAYH6xl3mKaQFvlUy6EOzOmMJPStlmmMy+bMylt5lc3WpdmfnTr0jOrE+SzCCfyf7m9qDLMECLngBue0Kt+9Z9ppCpNqcCvfZNu4i8z/gDC+gY+wpE7yt5TbPUeDdd9PG0XzMmAlA2GYpiRK3f67cRkVNFkcmJygibbdITNuqcoMnWieqRUembBkcpu9taae5SrJVLXyjCgudImhihppVr99+Sj1skKapP4qGhfFBj93q8NhI9d59Y+IsrrjuTrFwbHLmgXBCscupb9l73xb4du8CNScsUvvHph0l6FRljRbltFnJ+eDfj39Xu7QhH6XJOm98Ux4+6rjd8fLa1bTv6LmDYCcVHGqpJHLuK6AWCVwbVdvJpEOjYzAgmS6pt6Sh16dvKo3nWd3aISHTFgd//D87NBGBzmREMiJ6L9ImLFc61bzSwnrORt1yq9C+bGJdMYWIxLrCwCFmPel/RompCxv7EZoOsPsh81Aj+SkX6cmN1mRWRZaRTLdksDZesxFr46QtDs0QuCi2s5jd18JfJXisGybCY6VMxYHyd/zVcTdETan0nrTMCMSwnGE4hhSMx0qVl5O16wgdhGOktQ7nt6Ip0XqdKXGLQmbVf79QR3Ctjs0QtgCH6v8OcSu/FeRtXr5ZwZByOY4K1a9rp3WfSqGV+amOxA8TBOSRaEtBvOVvd/zRqV3RrCcwmrtcll/kW+7ut+c0df21ZRX+Q5tWkDwfSkfbElUrNK/rEVUdodGiEpAY0RloNtXgWm/vi+8JhaUi71iy5RlUeH605dpDy0aXWX39tF4cVZHNrBoLHVoJBqVbOiiUUqGX1gwvCzV2My6g/o8oMCx1zPfdDoZeg5zaxQeQ2crMx2cbV0Xm+0dLe/Zxh24ju0pzgAe04W2XViIUgXws2jgOVrsFciDzIXX1uxxkxOg57VkKpsALXVoNDFqUJlkNXb9dqKVB6RjWSso747Wwrb0DJuqM7ea7a0sM0ubntRuqUPZxS4XLyqmJ7cUuCwsX9ddyCh1aCSOi3IzhJ41C9uFcFUIZ0nFPtPg08cbc1F3vbrTVg0vLSlCQv9me8OdG1/eOmxtwfUVPAL5ZSk3tj8r7G3CV42sne8i99kwChPCvqzmfCG5046Bq0Vb3BbPYje0D2VDaxAt6Kzq+wUfHLa24EqyO3NHSV5kfbQsbcGU/ofuK7h+bJv2CJVZMLKj26Onox9w4S88GD0AAA==
|
79
|
+
http_version:
|
80
|
+
recorded_at: Mon, 05 Mar 2018 15:21:05 GMT
|
81
|
+
- request:
|
82
|
+
method: get
|
83
|
+
uri: https://cdn.contentful.com/spaces/011npgaszg5o/entries?sys.id=1HR1QvURo4MoSqO0eqmUeO
|
84
|
+
body:
|
85
|
+
encoding: US-ASCII
|
86
|
+
string: ''
|
87
|
+
headers:
|
88
|
+
X-Contentful-User-Agent:
|
89
|
+
- sdk contentful.rb/2.4.0; platform ruby/2.4.1; os macOS/16;
|
90
|
+
Authorization:
|
91
|
+
- Bearer 42c9d93410a7319e9a735671fc1e415348f65e94a99fc768b70a7c649859d4fd
|
92
|
+
Content-Type:
|
93
|
+
- application/vnd.contentful.delivery.v1+json
|
94
|
+
Accept-Encoding:
|
95
|
+
- gzip
|
96
|
+
Connection:
|
97
|
+
- close
|
98
|
+
Host:
|
99
|
+
- cdn.contentful.com
|
100
|
+
User-Agent:
|
101
|
+
- http.rb/2.2.2
|
102
|
+
response:
|
103
|
+
status:
|
104
|
+
code: 200
|
105
|
+
message: OK
|
106
|
+
headers:
|
107
|
+
Access-Control-Allow-Headers:
|
108
|
+
- 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
|
109
|
+
Access-Control-Allow-Methods:
|
110
|
+
- GET,HEAD,OPTIONS
|
111
|
+
Access-Control-Allow-Origin:
|
112
|
+
- "*"
|
113
|
+
Access-Control-Expose-Headers:
|
114
|
+
- Etag
|
115
|
+
Access-Control-Max-Age:
|
116
|
+
- '86400'
|
117
|
+
Cache-Control:
|
118
|
+
- max-age=0
|
119
|
+
Content-Encoding:
|
120
|
+
- gzip
|
121
|
+
Content-Type:
|
122
|
+
- application/vnd.contentful.delivery.v1+json
|
123
|
+
Etag:
|
124
|
+
- W/"88f4e9e290d1598d405b26ca4615290c"
|
125
|
+
Server:
|
126
|
+
- Contentful
|
127
|
+
X-Content-Type-Options:
|
128
|
+
- nosniff
|
129
|
+
X-Contentful-Request-Id:
|
130
|
+
- d1eceb795c1cec9fa21f29fcb930599d
|
131
|
+
Content-Length:
|
132
|
+
- '1663'
|
133
|
+
Accept-Ranges:
|
134
|
+
- bytes
|
135
|
+
Date:
|
136
|
+
- Mon, 05 Mar 2018 15:21:05 GMT
|
137
|
+
Via:
|
138
|
+
- 1.1 varnish
|
139
|
+
Age:
|
140
|
+
- '0'
|
141
|
+
Connection:
|
142
|
+
- close
|
143
|
+
X-Served-By:
|
144
|
+
- cache-hhn1544-HHN
|
145
|
+
X-Cache:
|
146
|
+
- MISS
|
147
|
+
X-Cache-Hits:
|
148
|
+
- '0'
|
149
|
+
X-Timer:
|
150
|
+
- S1520263265.470765,VS0,VE276
|
151
|
+
Vary:
|
152
|
+
- Accept-Encoding
|
153
|
+
body:
|
154
|
+
encoding: ASCII-8BIT
|
155
|
+
string: !binary |-
|
156
|
+
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
|
157
|
+
http_version:
|
158
|
+
recorded_at: Mon, 05 Mar 2018 15:21:05 GMT
|
159
|
+
recorded_with: VCR 3.0.3
|
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.5.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: 2018-
|
13
|
+
date: 2018-03-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: http
|
@@ -452,6 +452,7 @@ files:
|
|
452
452
|
- spec/fixtures/vcr_cassettes/entries.yml
|
453
453
|
- spec/fixtures/vcr_cassettes/entries/issue_117.yml
|
454
454
|
- spec/fixtures/vcr_cassettes/entries/issue_125.yml
|
455
|
+
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
|
455
456
|
- spec/fixtures/vcr_cassettes/entry.yml
|
456
457
|
- spec/fixtures/vcr_cassettes/entry/custom_resource.yml
|
457
458
|
- spec/fixtures/vcr_cassettes/entry/include_resolution.yml
|
@@ -589,6 +590,7 @@ test_files:
|
|
589
590
|
- spec/fixtures/vcr_cassettes/entries.yml
|
590
591
|
- spec/fixtures/vcr_cassettes/entries/issue_117.yml
|
591
592
|
- spec/fixtures/vcr_cassettes/entries/issue_125.yml
|
593
|
+
- spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
|
592
594
|
- spec/fixtures/vcr_cassettes/entry.yml
|
593
595
|
- spec/fixtures/vcr_cassettes/entry/custom_resource.yml
|
594
596
|
- spec/fixtures/vcr_cassettes/entry/include_resolution.yml
|