flipper-active_record 0.7.5 → 0.8.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 +26 -12
- data/lib/flipper/version.rb +1 -1
- data/test/adapters/active_record_test.rb +24 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 474a975f3793633635b2c32cb0d3f7d55ade54ce
|
4
|
+
data.tar.gz: 60e86070951aab98717c5fb2804aeccda57e6881
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38abfe042ac090eb5854ccc3f346f99035a0b4a4a5b3571d477bb6c7d5a69550302e7bd069fd22ac4bf177a27d95e79792e2731d6ba453af613e4233978332f2
|
7
|
+
data.tar.gz: 5c2beec8be19d9b198af5886f2362b88018fe428c69a69ff4a9e9a6f3bd54de5a667c1613ee2485702010417b1d4ef1b3b51b2cd4cd1ff9df0dd03944845f4a4
|
@@ -5,7 +5,7 @@ require 'active_record'
|
|
5
5
|
module Flipper
|
6
6
|
module Adapters
|
7
7
|
class ActiveRecord
|
8
|
-
include Flipper::Adapter
|
8
|
+
include ::Flipper::Adapter
|
9
9
|
|
10
10
|
# Private: Do not use outside of this adapter.
|
11
11
|
class Feature < ::ActiveRecord::Base
|
@@ -40,7 +40,7 @@ module Flipper
|
|
40
40
|
|
41
41
|
# Public: The set of known features.
|
42
42
|
def features
|
43
|
-
@feature_class.
|
43
|
+
@feature_class.all.map(&:key).to_set
|
44
44
|
end
|
45
45
|
|
46
46
|
# Public: Adds a feature to the set of known features.
|
@@ -105,11 +105,18 @@ module Flipper
|
|
105
105
|
def enable(feature, gate, thing)
|
106
106
|
case gate.data_type
|
107
107
|
when :boolean, :integer
|
108
|
-
@gate_class.
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
108
|
+
@gate_class.transaction do
|
109
|
+
@gate_class.where(
|
110
|
+
feature_key: feature.key,
|
111
|
+
key: gate.key
|
112
|
+
).delete_all
|
113
|
+
|
114
|
+
@gate_class.create!({
|
115
|
+
feature_key: feature.key,
|
116
|
+
key: gate.key,
|
117
|
+
value: thing.value.to_s,
|
118
|
+
})
|
119
|
+
end
|
113
120
|
when :set
|
114
121
|
@gate_class.create!({
|
115
122
|
feature_key: feature.key,
|
@@ -135,11 +142,18 @@ module Flipper
|
|
135
142
|
when :boolean
|
136
143
|
clear(feature)
|
137
144
|
when :integer
|
138
|
-
@gate_class.
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
145
|
+
@gate_class.transaction do
|
146
|
+
@gate_class.where(
|
147
|
+
feature_key: feature.key,
|
148
|
+
key: gate.key
|
149
|
+
).delete_all
|
150
|
+
|
151
|
+
@gate_class.create!({
|
152
|
+
feature_key: feature.key,
|
153
|
+
key: gate.key,
|
154
|
+
value: thing.value.to_s,
|
155
|
+
})
|
156
|
+
end
|
143
157
|
when :set
|
144
158
|
@gate_class.where(feature_key: feature.key, key: gate.key, value: thing.value).delete_all
|
145
159
|
else
|
data/lib/flipper/version.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'flipper/adapters/active_record'
|
3
|
+
require 'generators/flipper/templates/migration'
|
4
|
+
|
5
|
+
# Turn off migration logging for specs
|
6
|
+
ActiveRecord::Migration.verbose = false
|
7
|
+
|
8
|
+
class ActiveRecordTest < MiniTest::Test
|
9
|
+
prepend SharedAdapterTests
|
10
|
+
|
11
|
+
ActiveRecord::Base.establish_connection({
|
12
|
+
adapter: "sqlite3",
|
13
|
+
database: ":memory:",
|
14
|
+
})
|
15
|
+
|
16
|
+
def setup
|
17
|
+
@adapter = Flipper::Adapters::ActiveRecord.new
|
18
|
+
CreateFlipperTables.up
|
19
|
+
end
|
20
|
+
|
21
|
+
def teardown
|
22
|
+
CreateFlipperTables.down
|
23
|
+
end
|
24
|
+
end
|
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.8.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: 2016-
|
11
|
+
date: 2016-06-21 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.8.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.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/generators/flipper/active_record_generator.rb
|
62
62
|
- lib/generators/flipper/templates/migration.rb
|
63
63
|
- spec/flipper/adapters/active_record_spec.rb
|
64
|
+
- test/adapters/active_record_test.rb
|
64
65
|
- test/generators/flipper/active_record_generator_test.rb
|
65
66
|
homepage: https://github.com/jnunemaker/flipper
|
66
67
|
licenses:
|
@@ -88,4 +89,5 @@ specification_version: 4
|
|
88
89
|
summary: ActiveRecord adapter for Flipper
|
89
90
|
test_files:
|
90
91
|
- spec/flipper/adapters/active_record_spec.rb
|
92
|
+
- test/adapters/active_record_test.rb
|
91
93
|
- test/generators/flipper/active_record_generator_test.rb
|