contentful-management 1.3.0 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b787e1a5b3f2fe80bbc12f9038fd772c01e8df6
4
- data.tar.gz: 235ebb4b563abeafe6509dc2fbffb72ccd6e0005
3
+ metadata.gz: f3249dad1b37ff8e203c02f2bb3721b96e111728
4
+ data.tar.gz: a9b3a74a14feeac1d843f368cff6cdae238c6f70
5
5
  SHA512:
6
- metadata.gz: 980359feab17c1e33be85f684a3a17191dacc9038da4e6186c848ef9c398ba9123895bb5015d784900b3ae2c0f76d92f06406e85120cc9e9a27435e0dd920646
7
- data.tar.gz: 8199a7f8698c2ff4201a9e7c82f1becd9e032f6087321a214ec1f158fd29d29282eed49afbd37fd782dd8189946788a66819461b4e1a7a008219414ba1982aad
6
+ metadata.gz: 109d6ed87ff6e487f96bc2614a790154036af420a88c712a5197c7ba76a0692afa12023f1e2674c895a598e98ee61b25d832c6dfac76bd4039a2711ec659b555
7
+ data.tar.gz: 54abb173ac94d6f501ea27d5d654fd00063072d29b16a413599e8414e6374ef445613cabdb39ccdbffac9c273f7187c3fa29842f48bc7f8946096e1dd3b65500
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Master
4
4
 
5
+ ## 1.4.0
6
+ ### Added
7
+ * Added support for Fallback Locales (`nil` values get now removed from the requests on `#update` and `#create`)
8
+
5
9
  ## 1.3.0
6
10
  ### Added
7
11
  * Added Rate Limit automatic handling
@@ -107,13 +107,16 @@ module Contentful
107
107
  # Parser for entry attributes from query.
108
108
  # Returns a hash of existing fields.
109
109
  #
110
+ # @param [Boolean] remove_undefined Returns only defined (non-nil) fields if true. This replicates
111
+ # the WebApp logic for empty fields, so that we stay consistent across all our software
110
112
  # @private
111
- def fields_for_query
113
+ def fields_for_query(remove_undefined = true)
112
114
  raw_fields = instance_variable_get(:@fields)
113
115
  fields_names = flatten_field_names(raw_fields)
114
116
  fields_names.each_with_object({}) do |field_name, results|
115
117
  results[field_name] = raw_fields.each_with_object({}) do |(locale, fields), field_results|
116
- field_results[locale] = parse_update_attribute(fields[field_name])
118
+ attribute_value = parse_update_attribute(fields[field_name])
119
+ field_results[locale] = attribute_value unless attribute_value.nil? && remove_undefined
117
120
  end
118
121
  end
119
122
  end
@@ -24,7 +24,7 @@ module Contentful
24
24
  end
25
25
 
26
26
  send(FieldAware.define(method), "#{accessor_name}_with_locales") do
27
- fields_for_query[field.id.to_sym]
27
+ fields_for_query(false)[field.id.to_sym]
28
28
  end
29
29
  end
30
30
  end
@@ -3,6 +3,6 @@ module Contentful
3
3
  # Management Namespace
4
4
  module Management
5
5
  # Gem Version
6
- VERSION = '1.3.0'
6
+ VERSION = '1.4.0'
7
7
  end
8
8
  end
@@ -0,0 +1,527 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.contentful.com/spaces/wqjq16zu9s8b
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - RubyContentfulManagementGem/1.3.0
12
+ Authorization:
13
+ - Bearer <ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/vnd.contentful.management.v1+json
16
+ Content-Length:
17
+ - '0'
18
+ Connection:
19
+ - close
20
+ Host:
21
+ - api.contentful.com
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Accept-Ranges:
28
+ - bytes
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
31
+ Access-Control-Allow-Methods:
32
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
33
+ Access-Control-Allow-Origin:
34
+ - "*"
35
+ Access-Control-Expose-Headers:
36
+ - Etag
37
+ Access-Control-Max-Age:
38
+ - '1728000'
39
+ Cache-Control:
40
+ - max-age=0
41
+ Content-Type:
42
+ - application/vnd.contentful.management.v1+json
43
+ Date:
44
+ - Fri, 14 Oct 2016 12:12:25 GMT
45
+ Etag:
46
+ - '"77ff51f219c1505c57c86134ef8fdd46"'
47
+ Server:
48
+ - Contentful
49
+ Status:
50
+ - 200 OK
51
+ Strict-Transport-Security:
52
+ - max-age=15768000
53
+ X-Content-Type-Options:
54
+ - nosniff
55
+ X-Contentful-Ratelimit-Hour-Limit:
56
+ - '18000'
57
+ X-Contentful-Ratelimit-Hour-Remaining:
58
+ - '17899'
59
+ X-Contentful-Ratelimit-Reset:
60
+ - '0'
61
+ X-Contentful-Ratelimit-Second-Limit:
62
+ - '10'
63
+ X-Contentful-Ratelimit-Second-Remaining:
64
+ - '9'
65
+ X-Contentful-Request-Id:
66
+ - 6ed5087fe077424d4d47a8b3a1d5bf9e
67
+ Content-Length:
68
+ - '467'
69
+ Connection:
70
+ - Close
71
+ Set-Cookie:
72
+ - incap_ses_297_673446=1Tx6E/k/ykw7MuROSigfBKnLAFgAAAAAv8+wvRYPvAnuD2zy7CmKpQ==;
73
+ path=/; Domain=.contentful.com
74
+ - nlbi_673446=6CAsP+zo9UaAZ1H96lKYhQAAAAAq0oYT2JZAX5T6HKDR2yoU; path=/; Domain=.contentful.com
75
+ - visid_incap_673446=UbjVt7QrT8+1DwOHACM4n6nLAFgAAAAAQUIPAAAAAAAM4Yvq2Zn2k5iDwumuicu7;
76
+ expires=Sat, 14 Oct 2017 08:29:05 GMT; path=/; Domain=.contentful.com
77
+ X-Iinfo:
78
+ - 5-11491643-11491660 NNNN CT(126 260 0) RT(1476447144429 154) q(0 0 4 -1) r(6
79
+ 6) U5
80
+ X-Cdn:
81
+ - Incapsula
82
+ body:
83
+ encoding: ASCII-8BIT
84
+ string: |+
85
+ {
86
+ "name":"management.rb - Fallback",
87
+ "sys":{
88
+ "type":"Space",
89
+ "id":"wqjq16zu9s8b",
90
+ "version":1,
91
+ "createdBy":{
92
+ "sys":{
93
+ "type":"Link",
94
+ "linkType":"User",
95
+ "id":"4SejVrWT96dvL9IV4Nb7sQ"
96
+ }
97
+ },
98
+ "createdAt":"2016-10-14T12:00:26Z",
99
+ "updatedBy":{
100
+ "sys":{
101
+ "type":"Link",
102
+ "linkType":"User",
103
+ "id":"4SejVrWT96dvL9IV4Nb7sQ"
104
+ }
105
+ },
106
+ "updatedAt":"2016-10-14T12:00:26Z"
107
+ }
108
+ }
109
+
110
+ http_version:
111
+ recorded_at: Fri, 14 Oct 2016 12:12:24 GMT
112
+ - request:
113
+ method: get
114
+ uri: https://api.contentful.com/spaces/wqjq16zu9s8b/content_types
115
+ body:
116
+ encoding: US-ASCII
117
+ string: ''
118
+ headers:
119
+ User-Agent:
120
+ - RubyContentfulManagementGem/1.3.0
121
+ Authorization:
122
+ - Bearer <ACCESS_TOKEN>
123
+ Content-Type:
124
+ - application/vnd.contentful.management.v1+json
125
+ Content-Length:
126
+ - '0'
127
+ Connection:
128
+ - close
129
+ Host:
130
+ - api.contentful.com
131
+ response:
132
+ status:
133
+ code: 200
134
+ message: OK
135
+ headers:
136
+ Access-Control-Allow-Headers:
137
+ - 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
138
+ Access-Control-Allow-Methods:
139
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
140
+ Access-Control-Allow-Origin:
141
+ - "*"
142
+ Access-Control-Expose-Headers:
143
+ - Etag
144
+ Access-Control-Max-Age:
145
+ - '1728000'
146
+ Cf-Space-Id:
147
+ - wqjq16zu9s8b
148
+ Content-Type:
149
+ - application/vnd.contentful.management.v1+json
150
+ Date:
151
+ - Fri, 14 Oct 2016 12:12:28 GMT
152
+ Etag:
153
+ - '"6508fef90dc0cea0e8f0fe1def4225af"'
154
+ Server:
155
+ - Contentful
156
+ Strict-Transport-Security:
157
+ - max-age=15768000
158
+ X-Content-Type-Options:
159
+ - nosniff
160
+ X-Contentful-Ratelimit-Hour-Limit:
161
+ - '18000'
162
+ X-Contentful-Ratelimit-Hour-Remaining:
163
+ - '17898'
164
+ X-Contentful-Ratelimit-Reset:
165
+ - '0'
166
+ X-Contentful-Ratelimit-Second-Limit:
167
+ - '10'
168
+ X-Contentful-Ratelimit-Second-Remaining:
169
+ - '9'
170
+ X-Contentful-Request-Id:
171
+ - 23c5cbfd5606024757809c4885f63c0b
172
+ Content-Length:
173
+ - '1482'
174
+ Connection:
175
+ - Close
176
+ Set-Cookie:
177
+ - incap_ses_297_673446=Ve49bWMd/F2QOOROSigfBKzLAFgAAAAAS40WyCPngPWW6mYIPvbIYA==;
178
+ path=/; Domain=.contentful.com
179
+ - nlbi_673446=9/NOQ9cZxElBaIkx6lKYhQAAAAB5ONp5hff84ZAYjGudzTH8; path=/; Domain=.contentful.com
180
+ - visid_incap_673446=wCUdeZGmTGy/m+lja4WEI6zLAFgAAAAAQUIPAAAAAABSi8iojCc1SXUW7V9GEz/L;
181
+ expires=Sat, 14 Oct 2017 08:29:05 GMT; path=/; Domain=.contentful.com
182
+ X-Iinfo:
183
+ - 9-17143620-17143655 NNNN CT(129 128 0) RT(1476447145348 137) q(0 0 3 -1) r(28
184
+ 28) U5
185
+ X-Cdn:
186
+ - Incapsula
187
+ body:
188
+ encoding: ASCII-8BIT
189
+ string: |
190
+ {
191
+ "sys": {
192
+ "type": "Array"
193
+ },
194
+ "total": 1,
195
+ "skip": 0,
196
+ "limit": 100,
197
+ "items": [
198
+ {
199
+ "sys": {
200
+ "space": {
201
+ "sys": {
202
+ "type": "Link",
203
+ "linkType": "Space",
204
+ "id": "wqjq16zu9s8b"
205
+ }
206
+ },
207
+ "id": "test",
208
+ "type": "ContentType",
209
+ "createdAt": "2016-10-14T12:02:29.819Z",
210
+ "updatedAt": "2016-10-14T12:02:32.455Z",
211
+ "createdBy": {
212
+ "sys": {
213
+ "type": "Link",
214
+ "linkType": "User",
215
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
216
+ }
217
+ },
218
+ "updatedBy": {
219
+ "sys": {
220
+ "type": "Link",
221
+ "linkType": "User",
222
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
223
+ }
224
+ },
225
+ "publishedCounter": 1,
226
+ "version": 2,
227
+ "publishedBy": {
228
+ "sys": {
229
+ "type": "Link",
230
+ "linkType": "User",
231
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
232
+ }
233
+ },
234
+ "publishedVersion": 1,
235
+ "firstPublishedAt": "2016-10-14T12:02:32.442Z",
236
+ "publishedAt": "2016-10-14T12:02:32.442Z"
237
+ },
238
+ "displayField": "name",
239
+ "name": "Test",
240
+ "description": "",
241
+ "fields": [
242
+ {
243
+ "id": "name",
244
+ "name": "Name",
245
+ "type": "Symbol",
246
+ "localized": true,
247
+ "required": false,
248
+ "validations": [],
249
+ "disabled": false,
250
+ "omitted": false
251
+ }
252
+ ]
253
+ }
254
+ ]
255
+ }
256
+ http_version:
257
+ recorded_at: Fri, 14 Oct 2016 12:12:27 GMT
258
+ - request:
259
+ method: get
260
+ uri: https://api.contentful.com/spaces/wqjq16zu9s8b/entries/6HSlhD1o3eqkyEWWuMQYyU
261
+ body:
262
+ encoding: US-ASCII
263
+ string: ''
264
+ headers:
265
+ User-Agent:
266
+ - RubyContentfulManagementGem/1.3.0
267
+ Authorization:
268
+ - Bearer <ACCESS_TOKEN>
269
+ Content-Type:
270
+ - application/vnd.contentful.management.v1+json
271
+ Content-Length:
272
+ - '0'
273
+ Connection:
274
+ - close
275
+ Host:
276
+ - api.contentful.com
277
+ response:
278
+ status:
279
+ code: 200
280
+ message: OK
281
+ headers:
282
+ Access-Control-Allow-Headers:
283
+ - 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
284
+ Access-Control-Allow-Methods:
285
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
286
+ Access-Control-Allow-Origin:
287
+ - "*"
288
+ Access-Control-Expose-Headers:
289
+ - Etag
290
+ Access-Control-Max-Age:
291
+ - '1728000'
292
+ Cf-Space-Id:
293
+ - wqjq16zu9s8b
294
+ Content-Type:
295
+ - application/vnd.contentful.management.v1+json
296
+ Date:
297
+ - Fri, 14 Oct 2016 12:12:29 GMT
298
+ Etag:
299
+ - '"91cd337b06de0a1ae831679c8f1d7627"'
300
+ Server:
301
+ - Contentful
302
+ Strict-Transport-Security:
303
+ - max-age=15768000
304
+ X-Content-Type-Options:
305
+ - nosniff
306
+ X-Contentful-Ratelimit-Hour-Limit:
307
+ - '18000'
308
+ X-Contentful-Ratelimit-Hour-Remaining:
309
+ - '17897'
310
+ X-Contentful-Ratelimit-Reset:
311
+ - '0'
312
+ X-Contentful-Ratelimit-Second-Limit:
313
+ - '10'
314
+ X-Contentful-Ratelimit-Second-Remaining:
315
+ - '9'
316
+ X-Contentful-Request-Id:
317
+ - e0149fe76d8f9b38b92b73e2ec48d376
318
+ Content-Length:
319
+ - '1114'
320
+ Connection:
321
+ - Close
322
+ Set-Cookie:
323
+ - incap_ses_297_673446=YWWCAChK+S0oOuROSigfBK3LAFgAAAAAyPxNjzAgs/riLInd9ZvCEQ==;
324
+ path=/; Domain=.contentful.com
325
+ - nlbi_673446=ptHqBNH3JhzCvUbW6lKYhQAAAAC2jJNrcwJTIwrvfGqhG31M; path=/; Domain=.contentful.com
326
+ - visid_incap_673446=F6H1tyVJT+G69H7GUW8ClK3LAFgAAAAAQUIPAAAAAABV4TOljk2AH/iY6SgWO/Yi;
327
+ expires=Sat, 14 Oct 2017 08:28:42 GMT; path=/; Domain=.contentful.com
328
+ X-Iinfo:
329
+ - 2-5535446-5535458 NNNN CT(127 125 0) RT(1476447148451 148) q(0 0 3 -1) r(5
330
+ 5) U5
331
+ X-Cdn:
332
+ - Incapsula
333
+ body:
334
+ encoding: ASCII-8BIT
335
+ string: |
336
+ {
337
+ "sys": {
338
+ "id": "6HSlhD1o3eqkyEWWuMQYyU",
339
+ "type": "Entry",
340
+ "createdAt": "2016-10-14T12:02:37.658Z",
341
+ "createdBy": {
342
+ "sys": {
343
+ "type": "Link",
344
+ "linkType": "User",
345
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
346
+ }
347
+ },
348
+ "space": {
349
+ "sys": {
350
+ "type": "Link",
351
+ "linkType": "Space",
352
+ "id": "wqjq16zu9s8b"
353
+ }
354
+ },
355
+ "contentType": {
356
+ "sys": {
357
+ "type": "Link",
358
+ "linkType": "ContentType",
359
+ "id": "test"
360
+ }
361
+ },
362
+ "firstPublishedAt": "2016-10-14T12:02:51.245Z",
363
+ "publishedCounter": 1,
364
+ "publishedAt": "2016-10-14T12:02:51.245Z",
365
+ "publishedBy": {
366
+ "sys": {
367
+ "type": "Link",
368
+ "linkType": "User",
369
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
370
+ }
371
+ },
372
+ "publishedVersion": 8,
373
+ "version": 9,
374
+ "updatedAt": "2016-10-14T12:02:51.272Z",
375
+ "updatedBy": {
376
+ "sys": {
377
+ "type": "Link",
378
+ "linkType": "User",
379
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
380
+ }
381
+ }
382
+ },
383
+ "fields": {
384
+ "name": {
385
+ "en-US": "Foo",
386
+ "es": "Bar",
387
+ "zh": "Baz"
388
+ }
389
+ }
390
+ }
391
+ http_version:
392
+ recorded_at: Fri, 14 Oct 2016 12:12:28 GMT
393
+ - request:
394
+ method: put
395
+ uri: https://api.contentful.com/spaces/wqjq16zu9s8b/entries/6HSlhD1o3eqkyEWWuMQYyU
396
+ body:
397
+ encoding: UTF-8
398
+ string: '{"fields":{"name":{"en-US":"Foo","es":"Bar"}}}'
399
+ headers:
400
+ User-Agent:
401
+ - RubyContentfulManagementGem/1.3.0
402
+ Authorization:
403
+ - Bearer <ACCESS_TOKEN>
404
+ Content-Type:
405
+ - application/vnd.contentful.management.v1+json
406
+ X-Contentful-Version:
407
+ - '9'
408
+ Connection:
409
+ - close
410
+ Host:
411
+ - api.contentful.com
412
+ response:
413
+ status:
414
+ code: 200
415
+ message: OK
416
+ headers:
417
+ Access-Control-Allow-Headers:
418
+ - 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
419
+ Access-Control-Allow-Methods:
420
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
421
+ Access-Control-Allow-Origin:
422
+ - "*"
423
+ Access-Control-Expose-Headers:
424
+ - Etag
425
+ Access-Control-Max-Age:
426
+ - '1728000'
427
+ Cf-Space-Id:
428
+ - wqjq16zu9s8b
429
+ Content-Type:
430
+ - application/vnd.contentful.management.v1+json
431
+ Date:
432
+ - Fri, 14 Oct 2016 12:12:42 GMT
433
+ Etag:
434
+ - '"44799c327e0e3ceed7ea42fb3340d8e8"'
435
+ Server:
436
+ - Contentful
437
+ Strict-Transport-Security:
438
+ - max-age=15768000
439
+ X-Content-Type-Options:
440
+ - nosniff
441
+ X-Contentful-Ratelimit-Hour-Limit:
442
+ - '18000'
443
+ X-Contentful-Ratelimit-Hour-Remaining:
444
+ - '17896'
445
+ X-Contentful-Ratelimit-Reset:
446
+ - '0'
447
+ X-Contentful-Ratelimit-Second-Limit:
448
+ - '10'
449
+ X-Contentful-Ratelimit-Second-Remaining:
450
+ - '9'
451
+ X-Contentful-Request-Id:
452
+ - e17b1ff09ced7d7a730a6315df26366d
453
+ Content-Length:
454
+ - '1096'
455
+ Connection:
456
+ - Close
457
+ Set-Cookie:
458
+ - incap_ses_297_673446=GlfTV1tKnUKZVeROSigfBLrLAFgAAAAA9WtKh9R3k79RPWdnm7Adcw==;
459
+ path=/; Domain=.contentful.com
460
+ - nlbi_673446=Viy3F+gPg2Dh/hJX6lKYhQAAAADF/eaUZKTG1YDAQOfOqDU/; path=/; Domain=.contentful.com
461
+ - visid_incap_673446=stPpbS2IRgerUTwDvxCDUrrLAFgAAAAAQUIPAAAAAACC82/HXRyGhzHuPkRnbeEZ;
462
+ expires=Sat, 14 Oct 2017 08:29:05 GMT; path=/; Domain=.contentful.com
463
+ X-Iinfo:
464
+ - 1-6946572-6946578 NNNN CT(127 128 0) RT(1476447161244 287) q(0 0 2 -1) r(5
465
+ 5) U5
466
+ X-Cdn:
467
+ - Incapsula
468
+ body:
469
+ encoding: ASCII-8BIT
470
+ string: |
471
+ {
472
+ "fields": {
473
+ "name": {
474
+ "en-US": "Foo",
475
+ "es": "Bar"
476
+ }
477
+ },
478
+ "sys": {
479
+ "id": "6HSlhD1o3eqkyEWWuMQYyU",
480
+ "type": "Entry",
481
+ "createdAt": "2016-10-14T12:02:37.658Z",
482
+ "createdBy": {
483
+ "sys": {
484
+ "type": "Link",
485
+ "linkType": "User",
486
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
487
+ }
488
+ },
489
+ "space": {
490
+ "sys": {
491
+ "type": "Link",
492
+ "linkType": "Space",
493
+ "id": "wqjq16zu9s8b"
494
+ }
495
+ },
496
+ "contentType": {
497
+ "sys": {
498
+ "type": "Link",
499
+ "linkType": "ContentType",
500
+ "id": "test"
501
+ }
502
+ },
503
+ "firstPublishedAt": "2016-10-14T12:02:51.245Z",
504
+ "publishedCounter": 1,
505
+ "publishedAt": "2016-10-14T12:02:51.245Z",
506
+ "publishedBy": {
507
+ "sys": {
508
+ "type": "Link",
509
+ "linkType": "User",
510
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
511
+ }
512
+ },
513
+ "publishedVersion": 8,
514
+ "version": 10,
515
+ "updatedAt": "2016-10-14T12:12:42.683Z",
516
+ "updatedBy": {
517
+ "sys": {
518
+ "type": "Link",
519
+ "linkType": "User",
520
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
521
+ }
522
+ }
523
+ }
524
+ }
525
+ http_version:
526
+ recorded_at: Fri, 14 Oct 2016 12:12:41 GMT
527
+ recorded_with: VCR 3.0.3
@@ -810,6 +810,26 @@ module Contentful
810
810
  end
811
811
  end
812
812
 
813
+ describe 'fallback locales' do
814
+ let(:space) { client.spaces.find('wqjq16zu9s8b') }
815
+ it "if a property is nil, it's removed from the request to undefine it in the API" do
816
+ vcr('entry/fallback_undefined') {
817
+ entry = space.entries.find('6HSlhD1o3eqkyEWWuMQYyU')
818
+
819
+ expect(entry.name).to eq 'Foo'
820
+ expect(entry.fields('es')[:name]).to eq 'Bar'
821
+ expect(entry.fields('zh')[:name]).to eq 'Baz'
822
+
823
+ entry.locale ='zh'
824
+ entry.name = nil
825
+
826
+ expect(entry.fields_for_query[:name].keys).not_to include 'zh'
827
+
828
+ entry.save
829
+ }
830
+ end
831
+ end
832
+
813
833
  describe 'issues' do
814
834
  describe 'handles multiple locales even when they are not all defined for the default locale - #70' do
815
835
  it 'merges all present locales' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentful-management
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Protas
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-09-26 00:00:00.000000000 Z
13
+ date: 2016-10-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -401,6 +401,7 @@ files:
401
401
  - spec/fixtures/vcr_cassettes/entry/create_with_symbols.yml
402
402
  - spec/fixtures/vcr_cassettes/entry/destory_published.yml
403
403
  - spec/fixtures/vcr_cassettes/entry/destroy.yml
404
+ - spec/fixtures/vcr_cassettes/entry/fallback_undefined.yml
404
405
  - spec/fixtures/vcr_cassettes/entry/find-with-null-symbols.yml
405
406
  - spec/fixtures/vcr_cassettes/entry/find.yml
406
407
  - spec/fixtures/vcr_cassettes/entry/find_not_found.yml
@@ -694,6 +695,7 @@ test_files:
694
695
  - spec/fixtures/vcr_cassettes/entry/create_with_symbols.yml
695
696
  - spec/fixtures/vcr_cassettes/entry/destory_published.yml
696
697
  - spec/fixtures/vcr_cassettes/entry/destroy.yml
698
+ - spec/fixtures/vcr_cassettes/entry/fallback_undefined.yml
697
699
  - spec/fixtures/vcr_cassettes/entry/find-with-null-symbols.yml
698
700
  - spec/fixtures/vcr_cassettes/entry/find.yml
699
701
  - spec/fixtures/vcr_cassettes/entry/find_not_found.yml