corm 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +8 -8
  2. data/lib/corm/model.rb +35 -19
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTdiOTNmODcyZDNiYmUzYzE5Zjc1Mjk3ZmNhYmRjMWM1ODVmODMzZA==
4
+ ZmU2OWMwZDRlZWY0YmMzYzRlNWE2MWJiZDBmNzQ0ODFkZjdkYWQ4Yg==
5
5
  data.tar.gz: !binary |-
6
- NDAzNTA3M2YzNDllMDFjYWNkNmI0Yzg4N2I2Y2ExMmE1MTEwMzUyNw==
6
+ NTI0YTYxZTA2YzVlMzNmOWMzN2QwYTlmYzA4NTBmNWM3NmMzM2IzMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YTE4YjljNGI1ODFhOTU2YjI4YmI5NDk5ZGU5OTc3NDdlYjk2YWYyZDgxZTU1
10
- ZTQ5MzdhNWFiNDM1Y2ZlZWI5ZWI1NWU4OTkzZWY4M2Q5NDM3MGMxODE1OGY3
11
- YTRjNmM3YWI5NTk3YTIzN2IyYmZlYmQzNjc3MzY3MzAyMzA2OGQ=
9
+ NTU0ZjBiNmVkZTEyZGVhNzZhYTM1OTExMzExMTJhNzE4ZGQ0NmFkODViN2Rh
10
+ MDE2ODRmN2FlNDdjZmQ0MzY5OTEwMDM0NzM0MTNmZjE1MzEzOTM1MWJmYmY2
11
+ NmQ5OTFlMzdiODBmMTBkYjhkNTFlM2QwZDVhYmI5NzE1YmNmZTA=
12
12
  data.tar.gz: !binary |-
13
- MDc0YmE2YWFmNThkYWVkOWYzNjA2NmFhZWU2MGVjZTdlNWEzNDkwOThlMWEz
14
- NDZkMDdiYTQwNDZiZmRmNzcwNGYyZDBmZGZmMjM1NjJmN2VlNWI2MDRjYTEz
15
- MGU4OTNkZjc3NTE2MGQzOTNhOTcyYjUyYWZlYTRmYjI1NGM4ODQ=
13
+ YzcwYTJkZTM0YTE1MGQyNjUyYzdiMWVhNjk5OTliNGU5MDYzMzQ3ODRkZTEz
14
+ MmFlYmRiOGIzYTNmZTkxYTYzYWI3OTZiZjc0MTNiNTQyZDg1ODQxMTM1MDRi
15
+ NWYzYTY5ZGJkYzIzMDcwOTAzMGE2MGJhNGU2YmUzMzliNTgyZWQ=
data/lib/corm/model.rb CHANGED
@@ -29,53 +29,69 @@ module Corm
29
29
 
30
30
  primary_key name.to_s.downcase if pkey
31
31
 
32
- send(:define_method, name.to_s.downcase) do
33
- type = self.class.fields[name.to_s.downcase].to_s
32
+ send :define_method, name.to_s.downcase do
33
+ type = self.class.fields[name.to_s.downcase].to_s.downcase
34
34
  value = record[name.to_s.downcase]
35
35
  if type == 'json'
36
- MultiJson.decode value
36
+ value.nil? ? '' : MultiJson.decode(value)
37
37
  elsif type.start_with?('list') && type['json']
38
- value.map{|s| MultiJson.decode s}
38
+ value.nil? ? [] : value.map{|s| MultiJson.decode s}
39
+ elsif type.start_with?('list')
40
+ value.nil? ? [] : value
39
41
  elsif type.start_with?('set') && type['json']
40
- Set.new value.map{|s| MultiJson.decode s}
42
+ Set.new(value.nil? ? [] : value.map{|s| MultiJson.decode s})
43
+ elsif type.start_with?('set')
44
+ Set.new []
41
45
  elsif type.start_with?('map') && type['json']
42
- value.inject({}) do |hash, (k, v)|
46
+ hash = {}
47
+ (value || {}).each do |k, v|
43
48
  k = MultiJson.decode k if type['json,'] || type['json ,']
44
49
  v = MultiJson.decode v if type[', json'] || type[',json']
45
- hash.merge(k => v)
50
+ hash[k] = v
46
51
  end
52
+ hash
53
+ elsif type.start_with?('map')
54
+ {}
47
55
  else
48
56
  value
49
57
  end
50
58
  end
51
59
 
52
- send(:define_method, '[]') do |field|
60
+ send :define_method, '[]' do |field|
53
61
  send field.to_s.downcase
54
62
  end
55
63
 
56
- send(:define_method, "#{name.to_s.downcase}=") do |value|
57
- type = self.class.fields[name.to_s.downcase].to_s
64
+ send :define_method, "#{name.to_s.downcase}=" do |value|
65
+ type = self.class.fields[name.to_s.downcase].to_s.downcase
58
66
  record[name.to_s.downcase] = if type == 'json'
59
- MultiJson.encode value
67
+ value.to_s.empty? ? nil : MultiJson.encode(value)
60
68
  elsif type.start_with?('list') && type['json']
61
- value.map{|s| MultiJson.encode s}
69
+ value.to_a.empty? ? [] : value.map{|s| MultiJson.encode s}
70
+ elsif type.start_with?('list')
71
+ value.nil? ? [] : value
62
72
  elsif type.start_with?('set') && type['json']
63
- Set.new value.map{|s| MultiJson.encode s}
73
+ Set.new(value.nil? ? [] : value.map{|s| MultiJson.encode s})
74
+ elsif type.start_with?('set')
75
+ Set.new []
64
76
  elsif type.start_with?('map') && type['json']
65
- value.inject({}) do |hash, (k, v)|
77
+ hash = {}
78
+ (value || {}).each do |k, v|
66
79
  k = MultiJson.encode k if type['json,'] || type['json ,']
67
80
  v = MultiJson.encode v if type[', json'] || type[',json']
68
- hash.merge(k => v)
81
+ hash[k] = v
69
82
  end
83
+ hash
84
+ elsif type.start_with?('map')
85
+ {}
70
86
  else
71
87
  value
72
88
  end
73
89
  end
74
-
75
- send(:define_method, '[]=') do |field, value|
90
+
91
+ send :define_method, '[]=' do |field, value|
76
92
  send "#{field.to_s.downcase}=", value
77
93
  end
78
-
94
+
79
95
  nil
80
96
  end
81
97
 
@@ -169,7 +185,7 @@ module Corm
169
185
  nil
170
186
  end
171
187
 
172
- private
188
+ protected
173
189
 
174
190
  def execute *args
175
191
  self.class.execute *args
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: corm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Fontanelli