missile_emitter 0.3.9 → 0.3.10
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 +8 -3
- 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: dd0227814823c25214faacb834eda176b0e6109c722d60002fc97aaec77b1260
|
4
|
+
data.tar.gz: 764b2d98231e59abd9ebd819d23bf585c665d49977065c48de4b4cef4a42d86b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d2aa7e2e8b6a97af8066a372ced947949ebcf8de31dea1fa8810db3680075d6f9f4320a9a089a0cce745895bcbc0cbdf60b819e39f4f35f6b849501ed9b6fe0
|
7
|
+
data.tar.gz: c6b0f541524eacf29030b95900dbf50ab07ecd68d1e1298cc393e05a1e9507c980a69e710030b5e6f30a41fee198fab45d50930ad1020a1e7bcdc37e41532c11
|
data/Gemfile.lock
CHANGED
@@ -3,10 +3,10 @@ module MissileEmitter
|
|
3
3
|
|
4
4
|
# 配置项列表(klass => [key1, key2, ...])
|
5
5
|
# eg. {Setting => [:logo, :copyright, ...]}
|
6
|
-
|
6
|
+
mapping = {}
|
7
7
|
|
8
8
|
MissileEmitter do |klass, key_field = :key, value_field = :value, key, &default|
|
9
|
-
(
|
9
|
+
(mapping[klass] ||= [].to_set) << key
|
10
10
|
|
11
11
|
klass.define_singleton_method key do |&writer|
|
12
12
|
setting = find_or_initialize_by key_field => key
|
@@ -30,9 +30,14 @@ module MissileEmitter
|
|
30
30
|
extend ActiveSupport::Concern
|
31
31
|
|
32
32
|
included do
|
33
|
+
# 获取所有配置项名称:Klass.option_names ---> [:logo, copyright, ...]
|
34
|
+
define_singleton_method :option_names do
|
35
|
+
mapping.fetch self, []
|
36
|
+
end
|
37
|
+
|
33
38
|
# 获取所有配置:Klass.options ---> {logo: '', copyright: '', ...}
|
34
39
|
define_singleton_method :options do
|
35
|
-
option_names.
|
40
|
+
option_names.each_with_object({}) do |key, result|
|
36
41
|
result[key] = send key
|
37
42
|
end
|
38
43
|
end
|