flipper-active_record 0.7.5 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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