missile_emitter 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff12dd305050035a8ad409e24d0ed831c0ea89b581082295dac03181e16767d0
4
- data.tar.gz: 52750661ca62eaefeb65063d962f4933894039b6268fec196007426751aff54c
3
+ metadata.gz: abcafe80ec02f23fcdfae2f1ac7ee2904617a496debcd574e2cdb64a440d0720
4
+ data.tar.gz: e6007267a401da239d65ecbad0b6bae9e5647b6b24d0cf816a8b55bd7c8f7d85
5
5
  SHA512:
6
- metadata.gz: 70acfa24d04a51c808d3ab7ab08ffb99cbef39513996805c2ac4017179bc88498be82020607bfeb4c19fab26efc2afc132f4cdee48d901cc4d51eff74a52987c
7
- data.tar.gz: 505f6bc66f340c39e4deff41dfad571eee479dfab77da27ee4576aa18e494f2df2fa7c00f69a07279e85f3b52b852cfd8fd86677fd2752faf9f229c5d10bdaa3
6
+ metadata.gz: 578364770418732faaee8722beb147b7b2bd1e2e9b2b3be30a1faba8a6e042d5dbd88e4b5894fb016369d78ae9cafb22e95dba01488162e16816ca027eaf30d7
7
+ data.tar.gz: 2905399fb465dd69727b0ca256e4b609f58df82c79ef095bbe2fb8ca0ed47a53d0bded5705e86cd7f638c6ff2e5a7393f4214381227a50b878e5c47c5f0d56e8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- missile_emitter (0.3.7)
4
+ missile_emitter (0.3.8)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -17,15 +17,15 @@ GEM
17
17
  rspec-core (~> 3.9.0)
18
18
  rspec-expectations (~> 3.9.0)
19
19
  rspec-mocks (~> 3.9.0)
20
- rspec-core (3.9.0)
21
- rspec-support (~> 3.9.0)
20
+ rspec-core (3.9.1)
21
+ rspec-support (~> 3.9.1)
22
22
  rspec-expectations (3.9.0)
23
23
  diff-lcs (>= 1.2.0, < 2.0)
24
24
  rspec-support (~> 3.9.0)
25
- rspec-mocks (3.9.0)
25
+ rspec-mocks (3.9.1)
26
26
  diff-lcs (>= 1.2.0, < 2.0)
27
27
  rspec-support (~> 3.9.0)
28
- rspec-support (3.9.0)
28
+ rspec-support (3.9.2)
29
29
 
30
30
  PLATFORMS
31
31
  ruby
data/README.md CHANGED
@@ -156,4 +156,4 @@ Person.where('name like ?', "%#{params[:name_like]}%")
156
156
  .where(sex: params[:sex])
157
157
  ```
158
158
 
159
- 总而言之,使用导弹发射器,可以方便的在类定义级别实现声明式DSL(示例参见 [`attributes.rb`](https://github.com/coding-class-club/missile_emitter/blob/master/lib/missile_emitter/attributes.rb) 、[`searchable.rb`](https://github.com/coding-class-club/missile_emitter/blob/master/lib/missile_emitter/searchable.rb)),至于更多的用法,就留给你自己慢慢挖掘啦。
159
+ 总而言之,使用导弹发射器,可以方便的在类定义级别实现声明式DSL(示例参见 [`attributes.rb`](https://github.com/coding-class-club/missile_emitter/blob/master/lib/missile_emitter/attributes.rb) 、[`configurable.rb`](https://github.com/coding-class-club/missile_emitter/blob/master/lib/missile_emitter/configurable.rb)、[`searchable.rb`](https://github.com/coding-class-club/missile_emitter/blob/master/lib/missile_emitter/searchable.rb)),至于更多的用法,就留给你自己慢慢挖掘啦。
@@ -1,7 +1,13 @@
1
1
  module MissileEmitter
2
2
  module Configurable
3
+
4
+ # 配置项列表(klass => [key1, key2, ...])
5
+ # eg. {Setting => [:logo, :copyright, ...]}
6
+ option_names = {}
3
7
 
4
8
  MissileEmitter do |klass, key_field = :key, value_field = :value, key, &default|
9
+ (option_names[klass] ||= [].to_set) << key
10
+
5
11
  klass.define_singleton_method key do |&writer|
6
12
  setting = find_or_initialize_by key_field => key
7
13
 
@@ -21,5 +27,16 @@ module MissileEmitter
21
27
  end
22
28
  end
23
29
 
30
+ extend ActiveSupport::Concern
31
+
32
+ included do
33
+ # 获取所有配置:Klass.options ---> {logo: '', copyright: '', ...}
34
+ define_singleton_method :options do
35
+ option_names.fetch(self, []).map do |key|
36
+ {key => send(key)}
37
+ end
38
+ end
39
+ end
40
+
24
41
  end
25
42
  end
@@ -1,3 +1,3 @@
1
1
  module MissileEmitter
2
- VERSION = "0.3.7"
2
+ VERSION = "0.3.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: missile_emitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry Chen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-24 00:00:00.000000000 Z
11
+ date: 2020-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler