contentful_middleman 2.1.1 → 2.1.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee66e9f9a3bd4d95df237d74d9e4e112e2bf3ea3
|
4
|
+
data.tar.gz: 59ce9a704e69c4b5b0c96f82dd5b4e6debe15a92
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac290f4886ea33f87d16b720f9e8ced955524b883a2c7351a4684effb3bae691d015a8d95431ee04e37065d211a26e88fe2333d1c359ef2dbbef20fd83336dcc
|
7
|
+
data.tar.gz: df49b31585e907db09bff424e86c51a3608ce40a97fc4aa9a8e295682e20a277cbcf6ffab7fe731c592bf4e70d67b7b253f769f7ab5f14404f18be5266caa88e
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Change Log
|
2
2
|
## Unreleased
|
3
3
|
|
4
|
+
## 2.1.2
|
5
|
+
### Fixed
|
6
|
+
* `localize` helpers now properly serialized nested resources [#131](https://github.com/contentful/contentful_middleman/pull/131)
|
7
|
+
|
4
8
|
## 2.1.1
|
5
9
|
### Fixed
|
6
10
|
* `localize` helpers now properly serialize `_meta` attributes [#124](https://github.com/contentful/contentful_middleman/issues/124) [#128](https://github.com/contentful/contentful_middleman/issues/128)
|
data/examples/mappers/backref.rb
CHANGED
@@ -48,7 +48,7 @@ def self.BackrefMapper(content_type_id, content_type_field, backref_field)
|
|
48
48
|
|
49
49
|
def map(context, entry)
|
50
50
|
super
|
51
|
-
content_type_entries = @entries.select { |e| e.sys[:
|
51
|
+
content_type_entries = @entries.select { |e| e.sys[:content_type].id == @@content_type_id }
|
52
52
|
referencing_entries = content_type_entries.select{ |e| e.send(@@content_type_field).map{|x| x.id}.include? entry.id }
|
53
53
|
referencing_ids = referencing_entries.map{ |e| e.id }
|
54
54
|
context.set(@@backref_field, map_value(referencing_ids))
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'thor/core_ext/hash_with_indifferent_access'
|
1
2
|
require 'contentful_middleman/tools/preview_proxy'
|
2
3
|
|
3
4
|
module ContentfulMiddleman
|
@@ -7,7 +8,7 @@ module ContentfulMiddleman
|
|
7
8
|
end
|
8
9
|
|
9
10
|
def localize_entry(entry, locale, fallback_locale='en-US')
|
10
|
-
localized_entry =
|
11
|
+
localized_entry = ::Thor::CoreExt::HashWithIndifferentAccess.new
|
11
12
|
entry.each do |field, value|
|
12
13
|
localized_entry[field] = localize(entry, field, locale, fallback_locale)
|
13
14
|
end
|
@@ -28,10 +29,11 @@ module ContentfulMiddleman
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def localize_value(value, locale, fallback_locale='en-US')
|
31
|
-
if value.respond_to? :
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
value = value.fetch(locale) if value.respond_to?(:fetch) && value.respond_to?(:key?) && value.key?(locale)
|
33
|
+
value = value.fetch(fallback_locale) if value.respond_to?(:fetch) && value.respond_to?(:key?) && value.key?(fallback_locale)
|
34
|
+
|
35
|
+
return localize_array(value, locale, fallback_locale) if value.is_a? ::Array
|
36
|
+
return localize_entry(value, locale, fallback_locale) if value.is_a? ::Hash
|
35
37
|
value
|
36
38
|
end
|
37
39
|
|
@@ -22,7 +22,42 @@ describe ContentfulMiddleman::Helpers do
|
|
22
22
|
'es' => 'foobar',
|
23
23
|
'en-US' => 'baz'
|
24
24
|
}
|
25
|
-
]
|
25
|
+
],
|
26
|
+
nested_array: {
|
27
|
+
'en-US' => [
|
28
|
+
{
|
29
|
+
id: 'foo',
|
30
|
+
_meta: {
|
31
|
+
id: 'foo'
|
32
|
+
},
|
33
|
+
name: {
|
34
|
+
'es' => 'foo',
|
35
|
+
'en-US' => 'bar'
|
36
|
+
}
|
37
|
+
}, {
|
38
|
+
id: 'foo',
|
39
|
+
_meta: {
|
40
|
+
id: 'foo'
|
41
|
+
},
|
42
|
+
name: {
|
43
|
+
'en-NZ' => 'bar',
|
44
|
+
'en-US' => 'foo'
|
45
|
+
},
|
46
|
+
}
|
47
|
+
]
|
48
|
+
},
|
49
|
+
nested_hash: {
|
50
|
+
'en-US' => {
|
51
|
+
id: 'foo',
|
52
|
+
_meta: {
|
53
|
+
id: 'foo'
|
54
|
+
},
|
55
|
+
name: {
|
56
|
+
'es' => 'foo',
|
57
|
+
'en-US' => 'bar'
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
26
61
|
}
|
27
62
|
end
|
28
63
|
|
@@ -92,11 +127,38 @@ describe ContentfulMiddleman::Helpers do
|
|
92
127
|
end
|
93
128
|
|
94
129
|
it '#localize_entry' do
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
130
|
+
localized_entry = subject.localize_entry(entry, 'es')
|
131
|
+
expect(localized_entry).to eq({
|
132
|
+
'_meta' => { 'id' => 'foo' },
|
133
|
+
'value_field' => 'foo',
|
134
|
+
'array_field' => ['foobar'],
|
135
|
+
'nested_array' => [
|
136
|
+
{
|
137
|
+
'id' => 'foo',
|
138
|
+
'_meta' => {
|
139
|
+
'id' => 'foo'
|
140
|
+
},
|
141
|
+
'name' => 'foo'
|
142
|
+
}, {
|
143
|
+
'id' => 'foo',
|
144
|
+
'_meta' => {
|
145
|
+
'id' => 'foo'
|
146
|
+
},
|
147
|
+
'name' => 'foo'
|
148
|
+
}
|
149
|
+
],
|
150
|
+
'nested_hash' => {
|
151
|
+
'id' => 'foo',
|
152
|
+
'_meta' => {
|
153
|
+
'id' => 'foo'
|
154
|
+
},
|
155
|
+
'name' => 'foo'
|
156
|
+
}
|
99
157
|
})
|
158
|
+
|
159
|
+
expect(localized_entry[:_meta]).to eq({ 'id' => 'foo' })
|
160
|
+
expect(localized_entry[:nested_array][0][:id]).to eq('foo')
|
161
|
+
expect(localized_entry[:nested_hash][:id]).to eq('foo')
|
100
162
|
end
|
101
163
|
end
|
102
164
|
|
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: 2.1.
|
4
|
+
version: 2.1.2
|
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: 2017-
|
12
|
+
date: 2017-08-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: middleman-core
|
@@ -297,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
297
|
version: '0'
|
298
298
|
requirements: []
|
299
299
|
rubyforge_project:
|
300
|
-
rubygems_version: 2.6.
|
300
|
+
rubygems_version: 2.6.11
|
301
301
|
signing_key:
|
302
302
|
specification_version: 4
|
303
303
|
summary: Include mangablable content from the Contentful CMS and API into your Middleman
|