flipper-active_record 0.17.1 → 0.20.0.beta1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebacf897cd1f4bd3642c1d40728c3b3fa3c1faab744a51606956bb1d08a916ff
|
4
|
+
data.tar.gz: fff30b5e99f921b72a087a0c726ef474615c116ee55e7fb8c8e7fcf1d3e21158
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9f8b3a23b118e6696574c548b48fdc453aab19756d66abf401bcdabac926ec547e2d3085821c9def33d606e62af97dfefbc8b112afd49c50894a9e5252cb773
|
7
|
+
data.tar.gz: f2f139836011c304e90584d35db748302d8d825111ff31649b9ac347202ee13fc2dbb8c522ee113f8a1ee3b9525453c738ab4a74cad0c2acf5051e425739e718
|
@@ -4,7 +4,6 @@ An ActiveRecord adapter for [Flipper](https://github.com/jnunemaker/flipper).
|
|
4
4
|
|
5
5
|
Supported Active Record versions:
|
6
6
|
|
7
|
-
* 4.2.x
|
8
7
|
* 5.0.x
|
9
8
|
* 6.0.x
|
10
9
|
|
@@ -37,6 +36,8 @@ flipper = Flipper.new(adapter)
|
|
37
36
|
# profit...
|
38
37
|
```
|
39
38
|
|
39
|
+
Note that the active record adapter requires the database tables to be created in order to work; failure to run the migration first will cause an exception to be raised when attempting to initialize the active record adapter.
|
40
|
+
|
40
41
|
## Internals
|
41
42
|
|
42
43
|
Each feature is stored as a row in a features table. Each gate is stored as a row in a gates table, related to the feature by the feature's key.
|
@@ -10,7 +10,6 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.authors = ['John Nunemaker']
|
11
11
|
gem.email = ['nunemaker@gmail.com']
|
12
12
|
gem.summary = 'ActiveRecord adapter for Flipper'
|
13
|
-
gem.description = 'ActiveRecord adapter for Flipper'
|
14
13
|
gem.license = 'MIT'
|
15
14
|
gem.homepage = 'https://github.com/jnunemaker/flipper'
|
16
15
|
|
@@ -19,12 +18,12 @@ Gem::Specification.new do |gem|
|
|
19
18
|
'lib/flipper/version.rb',
|
20
19
|
]
|
21
20
|
gem.files = `git ls-files`.split("\n").select(&flipper_active_record_files) + extra_files
|
22
|
-
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n").select(&flipper_active_record_files)
|
21
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n").select(&flipper_active_record_files)
|
23
22
|
gem.name = 'flipper-active_record'
|
24
23
|
gem.require_paths = ['lib']
|
25
24
|
gem.version = Flipper::VERSION
|
26
25
|
gem.metadata = Flipper::METADATA
|
27
26
|
|
28
27
|
gem.add_dependency 'flipper', "~> #{Flipper::VERSION}"
|
29
|
-
gem.add_dependency 'activerecord', '>=
|
28
|
+
gem.add_dependency 'activerecord', '>= 5.0', '< 7'
|
30
29
|
end
|
@@ -59,7 +59,7 @@ module Flipper
|
|
59
59
|
unless @feature_class.where(key: feature.key).first
|
60
60
|
begin
|
61
61
|
@feature_class.create! { |f| f.key = feature.key }
|
62
|
-
rescue ActiveRecord::RecordNotUnique
|
62
|
+
rescue ::ActiveRecord::RecordNotUnique
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
@@ -125,7 +125,9 @@ module Flipper
|
|
125
125
|
# Returns true.
|
126
126
|
def enable(feature, gate, thing)
|
127
127
|
case gate.data_type
|
128
|
-
when :boolean
|
128
|
+
when :boolean
|
129
|
+
set(feature, gate, thing, clear: true)
|
130
|
+
when :integer
|
129
131
|
set(feature, gate, thing)
|
130
132
|
when :set
|
131
133
|
enable_multi(feature, gate, thing)
|
@@ -165,8 +167,10 @@ module Flipper
|
|
165
167
|
|
166
168
|
private
|
167
169
|
|
168
|
-
def set(feature, gate, thing)
|
170
|
+
def set(feature, gate, thing, options = {})
|
171
|
+
clear_feature = options.fetch(:clear, false)
|
169
172
|
@gate_class.transaction do
|
173
|
+
clear(feature) if clear_feature
|
170
174
|
@gate_class.where(feature_key: feature.key, key: gate.key).destroy_all
|
171
175
|
@gate_class.create! do |g|
|
172
176
|
g.feature_key = feature.key
|
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.20.0.beta1
|
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: 2020-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: flipper
|
@@ -16,21 +16,21 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.20.0.beta1
|
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.20.0.beta1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.0'
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '7'
|
@@ -40,11 +40,11 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '5.0'
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '7'
|
47
|
-
description:
|
47
|
+
description:
|
48
48
|
email:
|
49
49
|
- nunemaker@gmail.com
|
50
50
|
executables: []
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/flipper/version.rb
|
62
62
|
- lib/generators/flipper/active_record_generator.rb
|
63
63
|
- lib/generators/flipper/templates/migration.erb
|
64
|
+
- spec/flipper/adapters/active_record_requires_spec.rb
|
64
65
|
- spec/flipper/adapters/active_record_spec.rb
|
65
66
|
- test/adapters/active_record_test.rb
|
66
67
|
- test_rails/generators/flipper/active_record_generator_test.rb
|
@@ -80,14 +81,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
81
|
version: '0'
|
81
82
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
83
|
requirements:
|
83
|
-
- - "
|
84
|
+
- - ">"
|
84
85
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
86
|
+
version: 1.3.1
|
86
87
|
requirements: []
|
87
88
|
rubygems_version: 3.0.3
|
88
89
|
signing_key:
|
89
90
|
specification_version: 4
|
90
91
|
summary: ActiveRecord adapter for Flipper
|
91
92
|
test_files:
|
93
|
+
- spec/flipper/adapters/active_record_requires_spec.rb
|
92
94
|
- spec/flipper/adapters/active_record_spec.rb
|
93
95
|
- test/adapters/active_record_test.rb
|