flipper-active_record 0.11.0 → 0.12.0
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 +4 -4
- data/lib/flipper/adapters/active_record.rb +24 -17
- data/lib/flipper/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f229cea6ee1375f4e7646c83b5da628e96bb53f
|
4
|
+
data.tar.gz: f2e5c18eff0113f078e3b1e8bee95921404d827f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc26ab0e003c0bf66db5d9733ff7b403edf225a30dd5c1b93577981d471abe5065fe1cf522bcf1eba0a973af3fe1d6c15e9572cc0fd7c56f7349415f5a6df570
|
7
|
+
data.tar.gz: 1bfa2802ce615c641bde196294d15a726217f09c0ca59f46c3a5d373faa0d3d243fc4d6c6ac89111aaff79ffaabaea084e27b2338a97af67b30efd3e73006fb4
|
@@ -113,24 +113,9 @@ module Flipper
|
|
113
113
|
def enable(feature, gate, thing)
|
114
114
|
case gate.data_type
|
115
115
|
when :boolean, :integer
|
116
|
-
|
117
|
-
@gate_class.where(
|
118
|
-
feature_key: feature.key,
|
119
|
-
key: gate.key
|
120
|
-
).delete_all
|
121
|
-
|
122
|
-
@gate_class.create! do |g|
|
123
|
-
g.feature_key = feature.key
|
124
|
-
g.key = gate.key
|
125
|
-
g.value = thing.value.to_s
|
126
|
-
end
|
127
|
-
end
|
116
|
+
enable_single(feature, gate, thing)
|
128
117
|
when :set
|
129
|
-
|
130
|
-
g.feature_key = feature.key
|
131
|
-
g.key = gate.key
|
132
|
-
g.value = thing.value.to_s
|
133
|
-
end
|
118
|
+
enable_multi(feature, gate, thing)
|
134
119
|
else
|
135
120
|
unsupported_data_type gate.data_type
|
136
121
|
end
|
@@ -178,6 +163,28 @@ module Flipper
|
|
178
163
|
|
179
164
|
private
|
180
165
|
|
166
|
+
def enable_single(feature, gate, thing)
|
167
|
+
@gate_class.transaction do
|
168
|
+
@gate_class.where(feature_key: feature.key, key: gate.key).delete_all
|
169
|
+
@gate_class.create! do |g|
|
170
|
+
g.feature_key = feature.key
|
171
|
+
g.key = gate.key
|
172
|
+
g.value = thing.value.to_s
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
def enable_multi(feature, gate, thing)
|
178
|
+
@gate_class.create! do |g|
|
179
|
+
g.feature_key = feature.key
|
180
|
+
g.key = gate.key
|
181
|
+
g.value = thing.value.to_s
|
182
|
+
end
|
183
|
+
rescue ::ActiveRecord::RecordNotUnique
|
184
|
+
rescue ::ActiveRecord::StatementInvalid => error
|
185
|
+
raise unless error.message =~ /unique/i
|
186
|
+
end
|
187
|
+
|
181
188
|
def result_for_feature(feature, db_gates)
|
182
189
|
db_gates ||= []
|
183
190
|
result = {}
|
data/lib/flipper/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flipper-active_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: flipper
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.12.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.12.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|