Class: Zm::Client::Base::BaseJsnsInitializer
- Inherits:
-
Object
- Object
- Zm::Client::Base::BaseJsnsInitializer
show all
- Defined in:
- lib/zm/client/base/base_jsns_initializer.rb
Overview
class for account object jsns initializer
Class Method Summary
collapse
Class Method Details
.convert_json_string_value(value) ⇒ Object
49
50
51
52
53
54
55
|
# File 'lib/zm/client/base/base_jsns_initializer.rb', line 49
def convert_json_string_value(value)
return value unless value.is_a?(String)
return 0 if value == '0'
c = value.to_i
c.to_s == value ? c : value
end
|
.create(parent, json) ⇒ Object
9
10
11
12
13
|
# File 'lib/zm/client/base/base_jsns_initializer.rb', line 9
def create(parent, json)
klass.new(parent).tap do |item|
update(item, json)
end
end
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/zm/client/base/base_jsns_initializer.rb', line 26
def formatted_json(json)
return [] if json[:a].nil?
json[:a].reject! { |n| n[:n].nil? }
json_map = json[:a].map { |n| [n[:n], n[:_content]] }.freeze
hash_multivalued = json_map.each_with_object({}) do |(k, v), h|
h[k] ||= []
h[k].push(v)
end
hash_multivalued.transform_values do |v|
v.length == 1 ? v.first : v
end
end
|
.update(item, json) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/zm/client/base/base_jsns_initializer.rb', line 15
def update(item, json)
item.id = json.delete(:id)
item.name = json.delete(:name)
formatted_json(json).each do |k, v|
valorise(item, k, v)
end
item
end
|
.valorise(item, k, v) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/zm/client/base/base_jsns_initializer.rb', line 42
def valorise(item, k, v)
setter_method_name = "#{k}="
return unless item.respond_to?(setter_method_name)
item.send(setter_method_name, convert_json_string_value(v))
end
|