missile_emitter 0.3.11 → 0.3.12
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/attributes.rb +2 -2
- data/lib/missile_emitter/configurable.rb +9 -13
- 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: c30ef544858ee8f35621b13e78c376afd37e2b140871ae93da14e5e471bef521
|
4
|
+
data.tar.gz: 67737316195fe0d0ded4728af63e1c09b8c813627a653b4eb768244ea2346106
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66282a7e66a12987d3196017bb3729ff35a66ca9540541ad167a509ab07e0289561188e2d4ef23f4bdf4c36ce6e852fe98379371115ef422c390deeaae3cc2b9
|
7
|
+
data.tar.gz: d2e4790446cbf83110537ce99fdc7931b551444bcafdd4d0795373bcaeaa81acc6f2f7f1bd35cf7bc1b7275a19aa74917eddf2dd26db0aedb79db8e72a9d593a
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module MissileEmitter
|
2
2
|
module Attributes
|
3
|
-
MissileEmitter do |
|
3
|
+
MissileEmitter do |_, field, default, *, &block|
|
4
4
|
attribute = "@#{field}" # 构造实例变量名称,如:name => @name
|
5
5
|
# 动态定义实例⽅法
|
6
|
-
|
6
|
+
define_method field do
|
7
7
|
if instance_variable_defined?(attribute)
|
8
8
|
instance_variable_get attribute
|
9
9
|
else
|
@@ -8,7 +8,7 @@ module MissileEmitter
|
|
8
8
|
MissileEmitter do |klass, key_field = :key, value_field = :value, key, &default|
|
9
9
|
(mapping[klass] ||= [].to_set) << key
|
10
10
|
|
11
|
-
|
11
|
+
define_singleton_method key do |&writer|
|
12
12
|
setting = find_or_initialize_by key_field => key
|
13
13
|
|
14
14
|
value = setting.send value_field
|
@@ -27,19 +27,15 @@ module MissileEmitter
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
define_singleton_method :option_names do
|
35
|
-
mapping.fetch self, []
|
36
|
-
end
|
30
|
+
# 获取所有配置项名称:Klass.option_names ---> [:logo, copyright, ...]
|
31
|
+
define_method :option_names do
|
32
|
+
mapping.fetch self, []
|
33
|
+
end
|
37
34
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
35
|
+
# 获取所有配置:Klass.options ---> {logo: '', copyright: '', ...}
|
36
|
+
define_method :options do
|
37
|
+
option_names.each_with_object({}) do |key, result|
|
38
|
+
result[key] = send key
|
43
39
|
end
|
44
40
|
end
|
45
41
|
|