field_mapper 0.2.0 → 0.2.1
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/field_mapper/standard/field.rb +26 -11
- data/lib/field_mapper/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c52bf2ca07222946b8825250bb569f9997497fb
|
4
|
+
data.tar.gz: 6c0855100f5359f5458fca4a78919c77fd5166e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fa9c0f0a58f0a85a9c743924a9cb42d0ed60adc761c28d85484260a3571d9d7620af84ecbbc3ac46503e2586db9b4c94d947f210e9371a84865b9daf187ee47
|
7
|
+
data.tar.gz: cc849900d7fd3a10f3b1fdcd0efe8408b2d1d70d784a07ea3b3b3f603f868fdd9f8a3384f3670d2f7692c9221886130daab91d9fa6b84ca72aa5061df0c14bc1
|
@@ -109,21 +109,16 @@ module FieldMapper
|
|
109
109
|
def cast_value(type, value, as_single_value: false)
|
110
110
|
return nil if value.nil?
|
111
111
|
case type.name
|
112
|
-
when "String" then return value
|
113
|
-
when "FieldMapper::Types::Boolean" then return
|
114
|
-
when "Time" then
|
115
|
-
return value if value.is_a?(Time)
|
116
|
-
return Time.parse(value.to_s) rescue nil
|
112
|
+
when "String" then return string(value)
|
113
|
+
when "FieldMapper::Types::Boolean" then return boolean(value)
|
114
|
+
when "Time" then return time(value)
|
117
115
|
when "Integer" then return value.to_i
|
118
116
|
when "Float" then return value.to_f
|
119
|
-
when "Money" then
|
120
|
-
return value if value.is_a?(Money)
|
121
|
-
return Monetize.parse(value) rescue nil
|
117
|
+
when "Money" then return money(value)
|
122
118
|
when "FieldMapper::Types::Plat" then return plat_instance(type, value)
|
123
119
|
when "FieldMapper::Types::List" then
|
124
|
-
return value if value.is_a?(Array) && value.empty?
|
125
|
-
return plat_instance_list(type, value) if type.plat_list?
|
126
120
|
return cast_value(type.type, value) if as_single_value
|
121
|
+
return plat_instance_list(type, value) if type.plat_list?
|
127
122
|
get_list value
|
128
123
|
else
|
129
124
|
nil
|
@@ -141,6 +136,26 @@ module FieldMapper
|
|
141
136
|
value & raw_values
|
142
137
|
end
|
143
138
|
|
139
|
+
def string(value)
|
140
|
+
return value if value.is_a?(String)
|
141
|
+
value.to_s.strip
|
142
|
+
end
|
143
|
+
|
144
|
+
def boolean(value)
|
145
|
+
return value if value.is_a?(TrueClass) || value.is_a?(FalseClass)
|
146
|
+
FieldMapper::Types::Boolean.parse(value)
|
147
|
+
end
|
148
|
+
|
149
|
+
def time(value)
|
150
|
+
return value if value.is_a?(Time)
|
151
|
+
Time.parse(value.to_s) rescue nil
|
152
|
+
end
|
153
|
+
|
154
|
+
def money(value)
|
155
|
+
return value if value.is_a?(Money)
|
156
|
+
return Monetize.parse(value) rescue nil
|
157
|
+
end
|
158
|
+
|
144
159
|
def plat_instance(type, value)
|
145
160
|
return value if value.is_a?(FieldMapper::Standard::Plat)
|
146
161
|
return value if value.is_a?(Numeric)
|
@@ -151,7 +166,7 @@ module FieldMapper
|
|
151
166
|
end
|
152
167
|
|
153
168
|
def plat_instance_list(type, value)
|
154
|
-
return value if value.empty?
|
169
|
+
return value if value.is_a?(Array) && value.empty?
|
155
170
|
value = unmarshal(value) if value.is_a?(String)
|
156
171
|
return value.map { |val| plat_instance(type, val) }
|
157
172
|
end
|
data/lib/field_mapper/version.rb
CHANGED