dato 0.3.15 → 0.3.16
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/lib/dato/local/item.rb +18 -8
- data/lib/dato/local/site.rb +6 -1
- data/lib/dato/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c14a63b1e904638d14897d5091af398fb1187f71
|
4
|
+
data.tar.gz: 4de50e385d99f41cb99ac08ebba0547d209b3e0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f09bb97476d5b9e598cb3a8ef71e00c5635583a73b77a6978059516ef389ac96d9d1a8db1718e7f23e8617d67884cde7bf23461b93832c8dc08789b3b024801
|
7
|
+
data.tar.gz: ed9d5bddae54dadc1d07c482e20cb32aba7a2e8237ce9e6e151cfb02103b0f6d4e55832de80b99691216775fce7ab7181c4b0bbeb06106105c1d739a2ad23df0
|
data/lib/dato/local/item.rb
CHANGED
@@ -122,8 +122,14 @@ module Dato
|
|
122
122
|
field_type = field.field_type
|
123
123
|
type_klass_name = "::Dato::Local::FieldType::#{field_type.camelize}"
|
124
124
|
type_klass = type_klass_name.safe_constantize
|
125
|
+
|
125
126
|
value = if field.localized
|
126
|
-
|
127
|
+
obj = entity.send(method) || {}
|
128
|
+
|
129
|
+
locale_with_value = I18n.fallbacks[I18n.locale]
|
130
|
+
.find { |locale| obj[locale] }
|
131
|
+
|
132
|
+
obj[locale_with_value || I18n.locale]
|
127
133
|
else
|
128
134
|
entity.send(method)
|
129
135
|
end
|
@@ -150,14 +156,18 @@ module Dato
|
|
150
156
|
else
|
151
157
|
super
|
152
158
|
end
|
153
|
-
rescue NoMethodError
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
+
rescue NoMethodError => e
|
160
|
+
if e.name === method
|
161
|
+
message = []
|
162
|
+
message << "Undefined method `#{method}`"
|
163
|
+
message << "Available fields for a `#{item_type.api_key}` item:"
|
164
|
+
message += fields.map do |f|
|
165
|
+
"* .#{f.api_key}"
|
166
|
+
end
|
167
|
+
raise NoMethodError, message.join("\n")
|
168
|
+
else
|
169
|
+
raise e
|
159
170
|
end
|
160
|
-
raise NoMethodError, message.join("\n")
|
161
171
|
end
|
162
172
|
|
163
173
|
def respond_to_missing?(method, include_private = false)
|
data/lib/dato/local/site.rb
CHANGED
@@ -54,7 +54,12 @@ module Dato
|
|
54
54
|
|
55
55
|
def read_attribute(method, type_klass, localized)
|
56
56
|
value = if localized
|
57
|
-
|
57
|
+
obj = entity.send(method) || {}
|
58
|
+
|
59
|
+
locale_with_value = I18n.fallbacks[I18n.locale]
|
60
|
+
.find { |locale| obj[locale] }
|
61
|
+
|
62
|
+
obj[locale_with_value || I18n.locale]
|
58
63
|
else
|
59
64
|
entity.send(method)
|
60
65
|
end
|
data/lib/dato/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dato
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|