contentful_middleman 3.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +4 -0
- data/lib/contentful_middleman/import_task.rb +10 -3
- data/lib/contentful_middleman/mappers/base.rb +12 -5
- data/lib/contentful_middleman/version.rb +1 -1
- data/lib/contentful_middleman/version_hash.rb +3 -2
- data/spec/contentful_middleman/import_task_spec.rb +3 -2
- data/spec/contentful_middleman/mappers/base_spec.rb +31 -0
- data/spec/fixtures/backup_fixtures/.tmp/backups/.gitkeep +0 -0
- data/spec/fixtures/vcr_fixtures/client.yml +1 -1
- data/spec/fixtures/vcr_fixtures/entries/localized_references.yml +2 -2
- data/spec/fixtures/vcr_fixtures/entries/localized_references_localized_assets.yml +2 -2
- data/spec/fixtures/vcr_fixtures/entries/locations.yml +2 -2
- data/spec/fixtures/vcr_fixtures/entries/map_with_camel_case.yml +244 -0
- data/spec/fixtures/vcr_fixtures/entries/nil_file.yml +2 -2
- data/spec/fixtures/vcr_fixtures/entries/repeated_entry.yml +2 -2
- data/spec/fixtures/vcr_fixtures/helpers/preview.yml +2 -2
- data/spec/fixtures/vcr_fixtures/instance/entries_1.yml +1 -1
- data/spec/fixtures/vcr_fixtures/instance/entries_2.yml +3 -3
- data/spec/fixtures/vcr_fixtures/instance/entries_3.yml +3 -3
- data/spec/fixtures/vcr_fixtures/instance/include_resolution_1.yml +2 -2
- data/spec/fixtures/vcr_fixtures/mappers/entries.yml +2 -2
- data/spec/fixtures/vcr_fixtures/mappers/entries_localized.yml +2 -2
- data/spec/fixtures/vcr_fixtures/tools/preview_helper.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/asset.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/asset_2.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/assets.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/assets_2.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/entries.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/entries_2.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/entry.yml +1 -1
- data/spec/fixtures/vcr_fixtures/tools/preview_helper/entry_2.yml +1 -1
- data/spec/spec_helper.rb +10 -7
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e9ffdf90b11369b5a8889218f9b961c1fb32273b2acf2eae06785e944a27a539
|
4
|
+
data.tar.gz: 47679bc6168d7cfd968a1e226fc01ce25ea4e4e44bcd9ef2a5e128c873bb00c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 275ea6a5292da0585fe3ae0f9cf3b7c23ebf3dcd05eb23966a5b0fedc9078508ea6586f90a7b41d704b69b90aa603c6a6cb10631ddeb818ed3f7d3b0a5ccaf54
|
7
|
+
data.tar.gz: 659f627c6a8b70cce3b29f27ee90c0dc840f34a67834c3c89d888b816646d613548e75536f302f4f71ff95002ae9a606a9c97e59805103ec605a0bb53d5cb284
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,7 @@ module ContentfulMiddleman
|
|
6
6
|
@content_type_mappers = content_type_mappers
|
7
7
|
@changed_local_data = false
|
8
8
|
@contentful = contentful
|
9
|
+
@use_camel_case = @contentful.options.client_options.fetch(:use_camel_case, false)
|
9
10
|
end
|
10
11
|
|
11
12
|
def run
|
@@ -13,7 +14,7 @@ module ContentfulMiddleman
|
|
13
14
|
|
14
15
|
LocalData::Store.new(local_data_files, @space_name).write
|
15
16
|
|
16
|
-
new_version_hash = ContentfulMiddleman::VersionHash.write_for_space_with_entries(@space_name, entries)
|
17
|
+
new_version_hash = ContentfulMiddleman::VersionHash.write_for_space_with_entries(@space_name, entries, @use_camel_case)
|
17
18
|
|
18
19
|
@changed_local_data = new_version_hash != old_version_hash
|
19
20
|
end
|
@@ -33,12 +34,18 @@ module ContentfulMiddleman
|
|
33
34
|
|
34
35
|
private
|
35
36
|
def local_data_files
|
37
|
+
content_type_key = if @use_camel_case
|
38
|
+
:contentType
|
39
|
+
else
|
40
|
+
:content_type
|
41
|
+
end
|
42
|
+
|
36
43
|
entries.map do |entry|
|
37
|
-
content_type_mapper_class = @content_type_mappers.fetch(entry.sys[
|
44
|
+
content_type_mapper_class = @content_type_mappers.fetch(entry.sys[content_type_key].id, nil)
|
38
45
|
|
39
46
|
next unless content_type_mapper_class
|
40
47
|
|
41
|
-
content_type_name = @content_type_names.fetch(entry.sys[
|
48
|
+
content_type_name = @content_type_names.fetch(entry.sys[content_type_key].id).to_s
|
42
49
|
context = ContentfulMiddleman::Context.new
|
43
50
|
|
44
51
|
content_type_mapper = content_type_mapper_class.new(entries, @contentful.options)
|
@@ -9,6 +9,9 @@ module ContentfulMiddleman
|
|
9
9
|
@entries = entries
|
10
10
|
@options = options
|
11
11
|
@children = {}
|
12
|
+
@created_at_key = using_camel_case? ? :createdAt : :created_at
|
13
|
+
@updated_at_key = using_camel_case? ? :updatedAt : :updated_at
|
14
|
+
@content_type_key = using_camel_case? ? :contentType : :content_type
|
12
15
|
end
|
13
16
|
|
14
17
|
def map(context, entry)
|
@@ -25,6 +28,10 @@ module ContentfulMiddleman
|
|
25
28
|
|
26
29
|
private
|
27
30
|
|
31
|
+
def using_camel_case?
|
32
|
+
@options.client_options.fetch(:use_camel_case, false)
|
33
|
+
end
|
34
|
+
|
28
35
|
def has_multiple_locales?
|
29
36
|
@options.cda_query.fetch(:locale, nil) == '*'
|
30
37
|
end
|
@@ -61,8 +68,8 @@ module ContentfulMiddleman
|
|
61
68
|
|
62
69
|
def map_asset_metadata(asset)
|
63
70
|
context = Context.new
|
64
|
-
context.updated_at = asset.sys[
|
65
|
-
context.created_at = asset.sys[
|
71
|
+
context.updated_at = asset.sys[@updated_at_key].iso8601 unless asset.sys[@updated_at_key].nil?
|
72
|
+
context.created_at = asset.sys[@created_at_key].iso8601 unless asset.sys[@created_at_key].nil?
|
66
73
|
context.id = asset.sys[:id]
|
67
74
|
|
68
75
|
context
|
@@ -87,9 +94,9 @@ module ContentfulMiddleman
|
|
87
94
|
|
88
95
|
def map_entry_metadata(entry)
|
89
96
|
context = Context.new
|
90
|
-
context.content_type_id = entry.sys[
|
91
|
-
context.updated_at = entry.sys[
|
92
|
-
context.created_at = entry.sys[
|
97
|
+
context.content_type_id = entry.sys[@content_type_key].id unless entry.sys[@content_type_key].nil?
|
98
|
+
context.updated_at = entry.sys[@updated_at_key].iso8601 unless entry.sys[@updated_at_key].nil?
|
99
|
+
context.created_at = entry.sys[@created_at_key].iso8601 unless entry.sys[@created_at_key].nil?
|
93
100
|
context.id = entry.sys[:id]
|
94
101
|
|
95
102
|
context
|
@@ -10,9 +10,10 @@ module ContentfulMiddleman
|
|
10
10
|
::File.read(hashfilename_for_space) if File.exist? hashfilename_for_space
|
11
11
|
end
|
12
12
|
|
13
|
-
def write_for_space_with_entries(space_name, entries)
|
13
|
+
def write_for_space_with_entries(space_name, entries, use_camel_case = false)
|
14
|
+
updated_at_key = use_camel_case ? :updatedAt : :updated_at
|
14
15
|
sorted_entries = entries.sort {|a, b| a.id <=> b.id}
|
15
|
-
ids_and_revisions_string = sorted_entries.map {|e| "#{e.id}#{e.
|
16
|
+
ids_and_revisions_string = sorted_entries.map {|e| "#{e.id}#{e.public_send(updated_at_key)}"}.join
|
16
17
|
entries_hash = Digest::SHA1.hexdigest( ids_and_revisions_string )
|
17
18
|
|
18
19
|
File.open(hashfilename(space_name), 'w') { |file| file.write(entries_hash) }
|
@@ -160,6 +160,37 @@ describe ContentfulMiddleman::Mapper::Base do
|
|
160
160
|
}
|
161
161
|
end
|
162
162
|
|
163
|
+
it 'maps properly when using camel case option' do
|
164
|
+
vcr('entries/map_with_camel_case') {
|
165
|
+
subject = described_class.new entries, OptionsDouble.new(client_options: { use_camel_case: true })
|
166
|
+
expect(context.hashize).to eq ({})
|
167
|
+
|
168
|
+
expected = {
|
169
|
+
:_meta => {
|
170
|
+
:content_type_id=>"test",
|
171
|
+
:updated_at=>"2018-06-14T13:13:17+00:00",
|
172
|
+
:created_at=>"2018-06-14T13:13:17+00:00",
|
173
|
+
:id=>"5xkCBpVmHmS2WwqOW8OSwK"
|
174
|
+
},
|
175
|
+
id: "5xkCBpVmHmS2WwqOW8OSwK",
|
176
|
+
someField: "foobar"
|
177
|
+
}
|
178
|
+
|
179
|
+
client = Contentful::Client.new(
|
180
|
+
space: 'ycz65dz7s75m',
|
181
|
+
access_token: '7790b343268100301696628b99678de6a552c967ded5c448bf9f2cba3de806ca',
|
182
|
+
dynamic_entries: :auto,
|
183
|
+
use_camel_case: true
|
184
|
+
)
|
185
|
+
|
186
|
+
entry = client.entries.first
|
187
|
+
|
188
|
+
subject.map(context, entry)
|
189
|
+
|
190
|
+
expect(context.hashize).to eq(expected)
|
191
|
+
}
|
192
|
+
end
|
193
|
+
|
163
194
|
it 'maps entries with multiple locales with nested resources that are also localized' do
|
164
195
|
vcr('entries/localized_references_localized_assets') {
|
165
196
|
subject = described_class.new entries, OptionsDouble.new(cda_query: {locale: '*'})
|
File without changes
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/1sjfpsn7l90g/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/1sjfpsn7l90g/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -117,7 +117,7 @@ http_interactions:
|
|
117
117
|
recorded_at: Thu, 29 Sep 2016 22:30:25 GMT
|
118
118
|
- request:
|
119
119
|
method: get
|
120
|
-
uri: https://cdn.contentful.com/spaces/1sjfpsn7l90g/entries?locale=*
|
120
|
+
uri: https://cdn.contentful.com/spaces/1sjfpsn7l90g/environments/master/entries?locale=*
|
121
121
|
body:
|
122
122
|
encoding: US-ASCII
|
123
123
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/bht13amj0fva/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/bht13amj0fva/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -119,7 +119,7 @@ http_interactions:
|
|
119
119
|
recorded_at: Wed, 05 Oct 2016 14:33:01 GMT
|
120
120
|
- request:
|
121
121
|
method: get
|
122
|
-
uri: https://cdn.contentful.com/spaces/bht13amj0fva/entries?locale=*
|
122
|
+
uri: https://cdn.contentful.com/spaces/bht13amj0fva/environments/master/entries?locale=*
|
123
123
|
body:
|
124
124
|
encoding: US-ASCII
|
125
125
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/v0h47qlgo3zl/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/v0h47qlgo3zl/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -80,7 +80,7 @@ http_interactions:
|
|
80
80
|
recorded_at: Mon, 21 Aug 2017 21:10:22 GMT
|
81
81
|
- request:
|
82
82
|
method: get
|
83
|
-
uri: https://cdn.contentful.com/spaces/v0h47qlgo3zl/entries?content_type=destination&select=fields.name,fields.coordinates,sys&sys.id=4ik8UErhRmIwomiQs8EUkI
|
83
|
+
uri: https://cdn.contentful.com/spaces/v0h47qlgo3zl/environments/master/entries?content_type=destination&select=fields.name,fields.coordinates,sys&sys.id=4ik8UErhRmIwomiQs8EUkI
|
84
84
|
body:
|
85
85
|
encoding: US-ASCII
|
86
86
|
string: ''
|
@@ -0,0 +1,244 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://cdn.contentful.com/spaces/ycz65dz7s75m/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.2.1; platform ruby/2.5.1; os macOS/16;
|
12
|
+
Authorization:
|
13
|
+
- Bearer 7790b343268100301696628b99678de6a552c967ded5c448bf9f2cba3de806ca
|
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-Type:
|
42
|
+
- application/vnd.contentful.delivery.v1+json
|
43
|
+
Etag:
|
44
|
+
- '"a802c9553879adaad0097a8beedb5ecc"'
|
45
|
+
Server:
|
46
|
+
- Contentful
|
47
|
+
X-Content-Type-Options:
|
48
|
+
- nosniff
|
49
|
+
X-Contentful-Request-Id:
|
50
|
+
- b86f4e978f9a1bfee6bc90007bbe9e41
|
51
|
+
Content-Length:
|
52
|
+
- '957'
|
53
|
+
Accept-Ranges:
|
54
|
+
- bytes
|
55
|
+
Date:
|
56
|
+
- Thu, 14 Jun 2018 13:16:11 GMT
|
57
|
+
Via:
|
58
|
+
- 1.1 varnish
|
59
|
+
Age:
|
60
|
+
- '0'
|
61
|
+
Connection:
|
62
|
+
- close
|
63
|
+
X-Served-By:
|
64
|
+
- cache-hhn1532-HHN
|
65
|
+
X-Cache:
|
66
|
+
- MISS
|
67
|
+
X-Cache-Hits:
|
68
|
+
- '0'
|
69
|
+
X-Timer:
|
70
|
+
- S1528982171.382086,VS0,VE270
|
71
|
+
Vary:
|
72
|
+
- Accept-Encoding
|
73
|
+
body:
|
74
|
+
encoding: ASCII-8BIT
|
75
|
+
string: |
|
76
|
+
{
|
77
|
+
"sys": {
|
78
|
+
"type": "Array"
|
79
|
+
},
|
80
|
+
"total": 1,
|
81
|
+
"skip": 0,
|
82
|
+
"limit": 1000,
|
83
|
+
"items": [
|
84
|
+
{
|
85
|
+
"sys": {
|
86
|
+
"space": {
|
87
|
+
"sys": {
|
88
|
+
"type": "Link",
|
89
|
+
"linkType": "Space",
|
90
|
+
"id": "ycz65dz7s75m"
|
91
|
+
}
|
92
|
+
},
|
93
|
+
"id": "test",
|
94
|
+
"type": "ContentType",
|
95
|
+
"createdAt": "2018-06-14T13:13:07.886Z",
|
96
|
+
"updatedAt": "2018-06-14T13:13:07.886Z",
|
97
|
+
"environment": {
|
98
|
+
"sys": {
|
99
|
+
"id": "master",
|
100
|
+
"type": "Link",
|
101
|
+
"linkType": "Environment"
|
102
|
+
}
|
103
|
+
},
|
104
|
+
"revision": 1
|
105
|
+
},
|
106
|
+
"displayField": "someField",
|
107
|
+
"name": "Test",
|
108
|
+
"description": "",
|
109
|
+
"fields": [
|
110
|
+
{
|
111
|
+
"id": "someField",
|
112
|
+
"name": "someField",
|
113
|
+
"type": "Symbol",
|
114
|
+
"localized": false,
|
115
|
+
"required": false,
|
116
|
+
"disabled": false,
|
117
|
+
"omitted": false
|
118
|
+
}
|
119
|
+
]
|
120
|
+
}
|
121
|
+
]
|
122
|
+
}
|
123
|
+
http_version:
|
124
|
+
recorded_at: Thu, 14 Jun 2018 13:16:11 GMT
|
125
|
+
- request:
|
126
|
+
method: get
|
127
|
+
uri: https://cdn.contentful.com/spaces/ycz65dz7s75m/environments/master/entries
|
128
|
+
body:
|
129
|
+
encoding: US-ASCII
|
130
|
+
string: ''
|
131
|
+
headers:
|
132
|
+
X-Contentful-User-Agent:
|
133
|
+
- sdk contentful.rb/2.2.1; platform ruby/2.5.1; os macOS/16;
|
134
|
+
Authorization:
|
135
|
+
- Bearer 7790b343268100301696628b99678de6a552c967ded5c448bf9f2cba3de806ca
|
136
|
+
Content-Type:
|
137
|
+
- application/vnd.contentful.delivery.v1+json
|
138
|
+
Accept-Encoding:
|
139
|
+
- gzip
|
140
|
+
Connection:
|
141
|
+
- close
|
142
|
+
Host:
|
143
|
+
- cdn.contentful.com
|
144
|
+
User-Agent:
|
145
|
+
- http.rb/2.2.2
|
146
|
+
response:
|
147
|
+
status:
|
148
|
+
code: 200
|
149
|
+
message: OK
|
150
|
+
headers:
|
151
|
+
Access-Control-Allow-Headers:
|
152
|
+
- 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
|
153
|
+
Access-Control-Allow-Methods:
|
154
|
+
- GET,HEAD,OPTIONS
|
155
|
+
Access-Control-Allow-Origin:
|
156
|
+
- "*"
|
157
|
+
Access-Control-Expose-Headers:
|
158
|
+
- Etag
|
159
|
+
Access-Control-Max-Age:
|
160
|
+
- '86400'
|
161
|
+
Cache-Control:
|
162
|
+
- max-age=0
|
163
|
+
Content-Type:
|
164
|
+
- application/vnd.contentful.delivery.v1+json
|
165
|
+
Etag:
|
166
|
+
- '"376db3c86ef859e48397c6520bfcf235"'
|
167
|
+
Server:
|
168
|
+
- Contentful
|
169
|
+
X-Content-Type-Options:
|
170
|
+
- nosniff
|
171
|
+
X-Contentful-Request-Id:
|
172
|
+
- 6644c1c7f9d2b797077967aa07c407b8
|
173
|
+
Content-Length:
|
174
|
+
- '879'
|
175
|
+
Accept-Ranges:
|
176
|
+
- bytes
|
177
|
+
Date:
|
178
|
+
- Thu, 14 Jun 2018 13:16:12 GMT
|
179
|
+
Via:
|
180
|
+
- 1.1 varnish
|
181
|
+
Age:
|
182
|
+
- '0'
|
183
|
+
Connection:
|
184
|
+
- close
|
185
|
+
X-Served-By:
|
186
|
+
- cache-hhn1526-HHN
|
187
|
+
X-Cache:
|
188
|
+
- MISS
|
189
|
+
X-Cache-Hits:
|
190
|
+
- '0'
|
191
|
+
X-Timer:
|
192
|
+
- S1528982172.794017,VS0,VE278
|
193
|
+
Vary:
|
194
|
+
- Accept-Encoding
|
195
|
+
body:
|
196
|
+
encoding: ASCII-8BIT
|
197
|
+
string: |
|
198
|
+
{
|
199
|
+
"sys": {
|
200
|
+
"type": "Array"
|
201
|
+
},
|
202
|
+
"total": 1,
|
203
|
+
"skip": 0,
|
204
|
+
"limit": 100,
|
205
|
+
"items": [
|
206
|
+
{
|
207
|
+
"sys": {
|
208
|
+
"space": {
|
209
|
+
"sys": {
|
210
|
+
"type": "Link",
|
211
|
+
"linkType": "Space",
|
212
|
+
"id": "ycz65dz7s75m"
|
213
|
+
}
|
214
|
+
},
|
215
|
+
"id": "5xkCBpVmHmS2WwqOW8OSwK",
|
216
|
+
"type": "Entry",
|
217
|
+
"createdAt": "2018-06-14T13:13:17.377Z",
|
218
|
+
"updatedAt": "2018-06-14T13:13:17.377Z",
|
219
|
+
"environment": {
|
220
|
+
"sys": {
|
221
|
+
"id": "master",
|
222
|
+
"type": "Link",
|
223
|
+
"linkType": "Environment"
|
224
|
+
}
|
225
|
+
},
|
226
|
+
"revision": 1,
|
227
|
+
"contentType": {
|
228
|
+
"sys": {
|
229
|
+
"type": "Link",
|
230
|
+
"linkType": "ContentType",
|
231
|
+
"id": "test"
|
232
|
+
}
|
233
|
+
},
|
234
|
+
"locale": "en-US"
|
235
|
+
},
|
236
|
+
"fields": {
|
237
|
+
"someField": "foobar"
|
238
|
+
}
|
239
|
+
}
|
240
|
+
]
|
241
|
+
}
|
242
|
+
http_version:
|
243
|
+
recorded_at: Thu, 14 Jun 2018 13:16:12 GMT
|
244
|
+
recorded_with: VCR 3.0.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://preview.contentful.com/spaces/7f19o1co4hn7/content_types?limit=1000
|
5
|
+
uri: https://preview.contentful.com/spaces/7f19o1co4hn7/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -79,7 +79,7 @@ http_interactions:
|
|
79
79
|
recorded_at: Tue, 19 Jul 2016 13:49:05 GMT
|
80
80
|
- request:
|
81
81
|
method: get
|
82
|
-
uri: https://preview.contentful.com/spaces/7f19o1co4hn7/entries?sys.id=6C4T3KAZUWaysA6ooQOWiE
|
82
|
+
uri: https://preview.contentful.com/spaces/7f19o1co4hn7/environments/master/entries?sys.id=6C4T3KAZUWaysA6ooQOWiE
|
83
83
|
body:
|
84
84
|
encoding: US-ASCII
|
85
85
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/a80guayqr8ut/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/a80guayqr8ut/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -90,7 +90,7 @@ http_interactions:
|
|
90
90
|
recorded_at: Tue, 13 Dec 2016 12:56:31 GMT
|
91
91
|
- request:
|
92
92
|
method: get
|
93
|
-
uri: https://cdn.contentful.com/spaces/a80guayqr8ut/entries?sys.id=DT1yQgZABwuWeY842sGYY
|
93
|
+
uri: https://cdn.contentful.com/spaces/a80guayqr8ut/environments/master/entries?sys.id=DT1yQgZABwuWeY842sGYY
|
94
94
|
body:
|
95
95
|
encoding: US-ASCII
|
96
96
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://preview.contentful.com/spaces/cfexampleapi/content_types?limit=1000
|
5
|
+
uri: https://preview.contentful.com/spaces/cfexampleapi/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -92,7 +92,7 @@ http_interactions:
|
|
92
92
|
recorded_at: Thu, 10 Dec 2015 19:42:11 GMT
|
93
93
|
- request:
|
94
94
|
method: get
|
95
|
-
uri: https://preview.contentful.com/spaces/cfexampleapi/entries
|
95
|
+
uri: https://preview.contentful.com/spaces/cfexampleapi/environments/master/entries
|
96
96
|
body:
|
97
97
|
encoding: US-ASCII
|
98
98
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -92,7 +92,7 @@ http_interactions:
|
|
92
92
|
recorded_at: Thu, 26 Nov 2015 14:05:49 GMT
|
93
93
|
- request:
|
94
94
|
method: get
|
95
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/entries?limit=1
|
95
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/entries?limit=1
|
96
96
|
body:
|
97
97
|
encoding: US-ASCII
|
98
98
|
string: ''
|
@@ -176,7 +176,7 @@ http_interactions:
|
|
176
176
|
recorded_at: Thu, 26 Nov 2015 14:05:49 GMT
|
177
177
|
- request:
|
178
178
|
method: get
|
179
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/entries?limit=1000&order=sys.createdAt&skip=0
|
179
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/entries?limit=1000&order=sys.createdAt&skip=0
|
180
180
|
body:
|
181
181
|
encoding: US-ASCII
|
182
182
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -98,7 +98,7 @@ http_interactions:
|
|
98
98
|
recorded_at: Wed, 07 Sep 2016 22:51:13 GMT
|
99
99
|
- request:
|
100
100
|
method: get
|
101
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/entries?limit=1
|
101
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/entries?limit=1
|
102
102
|
body:
|
103
103
|
encoding: US-ASCII
|
104
104
|
string: ''
|
@@ -213,7 +213,7 @@ http_interactions:
|
|
213
213
|
recorded_at: Wed, 07 Sep 2016 22:51:13 GMT
|
214
214
|
- request:
|
215
215
|
method: get
|
216
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/entries?limit=100&order=sys.createdAt&skip=0
|
216
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/entries?limit=100&order=sys.createdAt&skip=0
|
217
217
|
body:
|
218
218
|
encoding: US-ASCII
|
219
219
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -97,7 +97,7 @@ http_interactions:
|
|
97
97
|
recorded_at: Thu, 27 Apr 2017 13:45:07 GMT
|
98
98
|
- request:
|
99
99
|
method: get
|
100
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/entries?sys.id=nyancat
|
100
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/entries?sys.id=nyancat
|
101
101
|
body:
|
102
102
|
encoding: US-ASCII
|
103
103
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -321,7 +321,7 @@ http_interactions:
|
|
321
321
|
recorded_at: Wed, 02 Dec 2015 18:20:27 GMT
|
322
322
|
- request:
|
323
323
|
method: get
|
324
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/entries
|
324
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/entries
|
325
325
|
body:
|
326
326
|
encoding: US-ASCII
|
327
327
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/content_types?limit=1000
|
5
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/content_types?limit=1000
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -321,7 +321,7 @@ http_interactions:
|
|
321
321
|
recorded_at: Wed, 02 Dec 2015 18:20:29 GMT
|
322
322
|
- request:
|
323
323
|
method: get
|
324
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/entries?include=1&locale=*
|
324
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/entries?include=1&locale=*
|
325
325
|
body:
|
326
326
|
encoding: US-ASCII
|
327
327
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://cdn.contentful.com/spaces/cfexampleapi/assets?order=sys.createdAt
|
5
|
+
uri: https://cdn.contentful.com/spaces/cfexampleapi/environments/master/assets?order=sys.createdAt
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
data/spec/spec_helper.rb
CHANGED
@@ -85,13 +85,20 @@ end
|
|
85
85
|
class EntryDouble
|
86
86
|
attr_reader :id, :sys, :fields
|
87
87
|
|
88
|
-
def initialize(id, sys_data = {}, fields = {}, updated_at = nil)
|
88
|
+
def initialize(id, sys_data = {}, fields = {}, updated_at = nil, camel_case = false)
|
89
89
|
@id = id
|
90
90
|
sys_data[:id] = id
|
91
|
-
sys_data[:updated_at] = updated_at
|
92
|
-
sys_data[:content_type] = ContentTypeDouble.new("#{id}_ct")
|
91
|
+
sys_data[camel_case ? :updatedAt : :updated_at] = updated_at
|
92
|
+
sys_data[camel_case ? :contentType : :content_type] = ContentTypeDouble.new("#{id}_ct")
|
93
93
|
@sys = sys_data
|
94
94
|
@fields = fields
|
95
|
+
@camel_case = camel_case
|
96
|
+
|
97
|
+
sys_data.each do |k, v|
|
98
|
+
define_singleton_method k do
|
99
|
+
v
|
100
|
+
end
|
101
|
+
end
|
95
102
|
|
96
103
|
unless fields.nil?
|
97
104
|
fields.each do |k, v|
|
@@ -101,8 +108,4 @@ class EntryDouble
|
|
101
108
|
end
|
102
109
|
end
|
103
110
|
end
|
104
|
-
|
105
|
-
def updated_at
|
106
|
-
sys[:updated_at]
|
107
|
-
end
|
108
111
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: contentful_middleman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sascha Konietzke
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-06-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: middleman-core
|
@@ -259,6 +259,7 @@ files:
|
|
259
259
|
- spec/fixtures/vcr_fixtures/entries/localized_references.yml
|
260
260
|
- spec/fixtures/vcr_fixtures/entries/localized_references_localized_assets.yml
|
261
261
|
- spec/fixtures/vcr_fixtures/entries/locations.yml
|
262
|
+
- spec/fixtures/vcr_fixtures/entries/map_with_camel_case.yml
|
262
263
|
- spec/fixtures/vcr_fixtures/entries/nil_file.yml
|
263
264
|
- spec/fixtures/vcr_fixtures/entries/repeated_entry.yml
|
264
265
|
- spec/fixtures/vcr_fixtures/helpers/preview.yml
|
@@ -298,7 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
298
299
|
version: '0'
|
299
300
|
requirements: []
|
300
301
|
rubyforge_project:
|
301
|
-
rubygems_version: 2.6
|
302
|
+
rubygems_version: 2.7.6
|
302
303
|
signing_key:
|
303
304
|
specification_version: 4
|
304
305
|
summary: Include mangablable content from the Contentful CMS and API into your Middleman
|
@@ -326,6 +327,7 @@ test_files:
|
|
326
327
|
- spec/fixtures/vcr_fixtures/entries/localized_references.yml
|
327
328
|
- spec/fixtures/vcr_fixtures/entries/localized_references_localized_assets.yml
|
328
329
|
- spec/fixtures/vcr_fixtures/entries/locations.yml
|
330
|
+
- spec/fixtures/vcr_fixtures/entries/map_with_camel_case.yml
|
329
331
|
- spec/fixtures/vcr_fixtures/entries/nil_file.yml
|
330
332
|
- spec/fixtures/vcr_fixtures/entries/repeated_entry.yml
|
331
333
|
- spec/fixtures/vcr_fixtures/helpers/preview.yml
|