missile_emitter 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59c81979360eedad3e6c4d9bd0c168711b1ffa0df3a2ef634b21d4195b61b533
4
- data.tar.gz: f73e60bb1650426a95b4c2c2bf2ab50d77600a6499dfc0c39172d2579b6c139d
3
+ metadata.gz: 8fcb01841704c973ecadc14dd16197852ad75dd7b75f4d538d78f6f2655e1008
4
+ data.tar.gz: 5c0e1d4b2f813b98be4df8bac1f3977ed612e2726cdbfca971ed389a311fe7fd
5
5
  SHA512:
6
- metadata.gz: 4ddb9c38586d04b9d6ed4d5a2e09dd853a7723b96f420163ccbed0d6f666a59f86ff7c95cdfe9b4fd3fb431a7ac489f826eaee6d2eaa6e651b260beef09f87be
7
- data.tar.gz: 31adaf7b8cd3b21aadd89f47418e38bcdd6d9787a94e6b32f3aff8005b3161d741f940a0a370aeaa671e1843067e25c7337f44b7fd780938464bb03df52ab4ef
6
+ metadata.gz: d906b43f6bb9dbbc25d0a18093ce9ba21ca3115539252e196183b56acc8e01159686e10576da55c814748f5cf0b2d7ef47b10e815dc05695debf7222cd66283f
7
+ data.tar.gz: fc7ff709fc3ab6f8c5a3aad28c2f52255a41d9a22edfb38f5f154559bdf6321f5d25a2e0369d70dc21b92d8bcfa7a51eaa3b9f16fc92ab85315c510ab87f3c55
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- missile_emitter (0.3.5)
4
+ missile_emitter (0.3.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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 = find_or_create_by! key_field => key
6
+ setting = find_or_initialize_by key_field => key
7
7
 
8
- value = setting.instance_exec &(writer || default || -> {})
8
+ value = setting.send value_field
9
9
 
10
- setting.update(value_field => value)
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.send value_field
16
+ setting.attributes = {value_field => value}
17
+
18
+ setting.save!
19
+
20
+ value
13
21
  end
14
22
  end
15
23
 
@@ -1,3 +1,3 @@
1
1
  module MissileEmitter
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: missile_emitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry Chen