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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a81520344638895f43c0e1b4993d3e5d5fae5667
4
- data.tar.gz: 1629de83c8f79141b91978b1aaf603e37e09f85e
3
+ metadata.gz: 474a975f3793633635b2c32cb0d3f7d55ade54ce
4
+ data.tar.gz: 60e86070951aab98717c5fb2804aeccda57e6881
5
5
  SHA512:
6
- metadata.gz: b02a26809928457bee641aba482c3b955827f8d6b46f338f9a5665358d7fe75c4a78f50e8b7717b072b28a1a7d0e60eccf997a6831ce9cc306d8b2b9f698667b
7
- data.tar.gz: d09d90bacb12b8a7ec37089c3e2c357a7b40351f666ff611cef7cbf6a5f1a482ff4e45d7385fbb8a4b92b14d74837a1882c151a2a77127867517b4eb38c3d72c
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.select(:key).map(&:key).to_set
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.create!({
109
- feature_key: feature.key,
110
- key: gate.key,
111
- value: thing.value.to_s,
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.create!({
139
- feature_key: feature.key,
140
- key: gate.key,
141
- value: thing.value.to_s,
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
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = "0.7.5"
2
+ VERSION = "0.8.0"
3
3
  end
@@ -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.7.5
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-02-25 00:00:00.000000000 Z
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.7.5
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.7.5
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