missile_emitter 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/missile_emitter/configurable.rb +12 -4
- data/lib/missile_emitter/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fcb01841704c973ecadc14dd16197852ad75dd7b75f4d538d78f6f2655e1008
|
4
|
+
data.tar.gz: 5c0e1d4b2f813b98be4df8bac1f3977ed612e2726cdbfca971ed389a311fe7fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d906b43f6bb9dbbc25d0a18093ce9ba21ca3115539252e196183b56acc8e01159686e10576da55c814748f5cf0b2d7ef47b10e815dc05695debf7222cd66283f
|
7
|
+
data.tar.gz: fc7ff709fc3ab6f8c5a3aad28c2f52255a41d9a22edfb38f5f154559bdf6321f5d25a2e0369d70dc21b92d8bcfa7a51eaa3b9f16fc92ab85315c510ab87f3c55
|
data/Gemfile.lock
CHANGED
@@ -3,13 +3,21 @@ module MissileEmitter
|
|
3
3
|
|
4
4
|
MissileEmitter do |klass, key_field = :key, value_field = :value, key, &default|
|
5
5
|
klass.define_singleton_method key do |&writer|
|
6
|
-
setting =
|
6
|
+
setting = find_or_initialize_by key_field => key
|
7
7
|
|
8
|
-
value = setting.
|
8
|
+
value = setting.send value_field
|
9
9
|
|
10
|
-
setting.
|
10
|
+
if setting.new_record? # 记录不存在
|
11
|
+
value = setting.instance_exec &(writer || default || -> { value })
|
12
|
+
else
|
13
|
+
value = setting.instance_exec &writer if writer
|
14
|
+
end
|
11
15
|
|
12
|
-
setting.
|
16
|
+
setting.attributes = {value_field => value}
|
17
|
+
|
18
|
+
setting.save!
|
19
|
+
|
20
|
+
value
|
13
21
|
end
|
14
22
|
end
|
15
23
|
|