corm 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/corm/model.rb +35 -19
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZmU2OWMwZDRlZWY0YmMzYzRlNWE2MWJiZDBmNzQ0ODFkZjdkYWQ4Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTI0YTYxZTA2YzVlMzNmOWMzN2QwYTlmYzA4NTBmNWM3NmMzM2IzMw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTU0ZjBiNmVkZTEyZGVhNzZhYTM1OTExMzExMTJhNzE4ZGQ0NmFkODViN2Rh
|
10
|
+
MDE2ODRmN2FlNDdjZmQ0MzY5OTEwMDM0NzM0MTNmZjE1MzEzOTM1MWJmYmY2
|
11
|
+
NmQ5OTFlMzdiODBmMTBkYjhkNTFlM2QwZDVhYmI5NzE1YmNmZTA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
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
|
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
|
-
|
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
|
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
|
60
|
+
send :define_method, '[]' do |field|
|
53
61
|
send field.to_s.downcase
|
54
62
|
end
|
55
63
|
|
56
|
-
send
|
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
|
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
|
-
|
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
|
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
|
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
|
-
|
188
|
+
protected
|
173
189
|
|
174
190
|
def execute *args
|
175
191
|
self.class.execute *args
|