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: 580a17c75e03a7c98a7361a34f24ae82124491bf02e1351972bd1f6d5b627f79
4
- data.tar.gz: f9a57fae9ea74c31101e3e461e0afbd622977351fae841428b35f746badfc803
3
+ metadata.gz: ebacf897cd1f4bd3642c1d40728c3b3fa3c1faab744a51606956bb1d08a916ff
4
+ data.tar.gz: fff30b5e99f921b72a087a0c726ef474615c116ee55e7fb8c8e7fcf1d3e21158
5
5
  SHA512:
6
- metadata.gz: 71e7004c6d628e0fe95f3e2d1adaa85d572a557d139634562bb79ccb76a2fd986778773c0aa7895d87db398a16483e6ecf3b3dc26cd067ff7919e810232ab78a
7
- data.tar.gz: 05b9b9d298593eddcacb447ac3270a9685bdc25881b67ca37a89c944626e631178ece3910b2931a0b6cb5a7ca553579830f486cd5f2093dfd618e8d978d4eec9
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) # rubocop:disable Metrics/LineLength
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', '>= 4.2', '< 7'
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, :integer
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
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = '0.17.1'.freeze
2
+ VERSION = '0.20.0.beta1'.freeze
3
3
  end
@@ -0,0 +1,5 @@
1
+ # This nominally-empty spec ensures that the file "flipper-active_record.rb" can be
2
+ # required without error, and guards against regressions of the kind fixed in
3
+ # https://github.com/jnunemaker/flipper/pull/437.
4
+
5
+ require "flipper-active_record.rb"
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.17.1
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: 2019-09-14 00:00:00.000000000 Z
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.17.1
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.17.1
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: '4.2'
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: '4.2'
43
+ version: '5.0'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '7'
47
- description: ActiveRecord adapter for Flipper
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: '0'
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