flipper-sequel 0.21.0.rc1 → 0.22.1

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: e54420e133a98d1409c46eee996cb5e1b2f1dc5f7a42e13a239d117aad1b1f4e
4
- data.tar.gz: 6a33075a77c44f4661dea0b86b790e10ecc4b57bf73c2d54188eb97654fe72b5
3
+ metadata.gz: 5ce2ffdf3cf436c77fb8ba03a3c029d29de3fb4f9c957432802d44b1eaf8da9e
4
+ data.tar.gz: 9326d3430684b8b0b6be6f01548d7cbbf392a8f3ed12715c12fb4ea00ce36174
5
5
  SHA512:
6
- metadata.gz: dc79979ecadab2e090576c0a3adb3c35b1d542eed28cfe7129a4ff988ed247f3bc7c3643b4485d332989e5584d2fb8499b2a2fd278c5d181593ac1f81fa1402e
7
- data.tar.gz: e67db92eacbac704ff680d4a4fd3aacbdbb568f155914d819daa7b223dab72b18955c442d73bbcbb0a58326acca983c59e150cbf47bed8bb128a1414be129bbd
6
+ metadata.gz: 5d1031cbbdcabe73ef9feac30dd00d7ccfcb955abb24283f615bf19d70265c86cd0f2bc6eeeea96abb0028eee1a8848ea15699dceeb421a927a725156f03d7fb
7
+ data.tar.gz: 9acf7c0ea2ec149ea78334f305c2ff704d95207b0dc63fe708038fb94a92422917546b9f95c9a338316c2eb8da5792f4ae7ba7c2cd23e533532299a730441766
@@ -35,9 +35,7 @@ require 'flipper-sequel`
35
35
 
36
36
  ```ruby
37
37
  Flipper.configure do |config|
38
- config.default do
39
- Flipper.new(Flipper::Adapters::Sequel.new)
40
- end
38
+ config.adapter { Flipper::Adapters::Sequel.new }
41
39
  end
42
40
  ```
43
41
 
@@ -7,20 +7,18 @@ require 'generators/flipper/templates/sequel_migration'
7
7
  CreateFlipperTablesSequel.new(Sequel::Model.db).up
8
8
 
9
9
  require 'flipper/adapters/sequel'
10
- adapter = Flipper::Adapters::Sequel.new
11
- flipper = Flipper.new(adapter)
12
10
 
13
- flipper[:stats].enable
11
+ Flipper[:stats].enable
14
12
 
15
- if flipper[:stats].enabled?
13
+ if Flipper[:stats].enabled?
16
14
  puts "Enabled!"
17
15
  else
18
16
  puts "Disabled!"
19
17
  end
20
18
 
21
- flipper[:stats].disable
19
+ Flipper[:stats].disable
22
20
 
23
- if flipper[:stats].enabled?
21
+ if Flipper[:stats].enabled?
24
22
  puts "Enabled!"
25
23
  else
26
24
  puts "Disabled!"
@@ -7,8 +7,6 @@ require 'generators/flipper/templates/sequel_migration'
7
7
  CreateFlipperTablesSequel.new(Sequel::Model.db).up
8
8
 
9
9
  require 'flipper/adapters/sequel'
10
- adapter = Flipper::Adapters::Sequel.new
11
- flipper = Flipper.new(adapter)
12
10
 
13
11
  # Register a few groups.
14
12
  Flipper.register(:admins) { |thing| thing.admin? }
@@ -17,16 +15,16 @@ Flipper.register(:early_access) { |thing| thing.early_access? }
17
15
  # Create a user class that has flipper_id instance method.
18
16
  User = Struct.new(:flipper_id)
19
17
 
20
- flipper[:stats].enable
21
- flipper[:stats].enable_group :admins
22
- flipper[:stats].enable_group :early_access
23
- flipper[:stats].enable_actor User.new('25')
24
- flipper[:stats].enable_actor User.new('90')
25
- flipper[:stats].enable_actor User.new('180')
26
- flipper[:stats].enable_percentage_of_time 15
27
- flipper[:stats].enable_percentage_of_actors 45
18
+ Flipper[:stats].enable
19
+ Flipper[:stats].enable_group :admins
20
+ Flipper[:stats].enable_group :early_access
21
+ Flipper[:stats].enable_actor User.new('25')
22
+ Flipper[:stats].enable_actor User.new('90')
23
+ Flipper[:stats].enable_actor User.new('180')
24
+ Flipper[:stats].enable_percentage_of_time 15
25
+ Flipper[:stats].enable_percentage_of_actors 45
28
26
 
29
- flipper[:search].enable
27
+ Flipper[:search].enable
30
28
 
31
29
  puts 'all rows in features table'
32
30
  pp Flipper::Adapters::Sequel::Feature.all
@@ -48,7 +46,7 @@ pp Flipper::Adapters::Sequel::Gate.all
48
46
  puts
49
47
 
50
48
  puts 'flipper get of feature'
51
- pp adapter.get(flipper[:stats])
49
+ pp Flipper.adapter.get(Flipper[:stats])
52
50
  # {:boolean=>"true",
53
51
  # :groups=>#<Set: {"admins", "early_access"}>,
54
52
  # :actors=>#<Set: {"180", "25", "90"}>,
@@ -97,11 +97,15 @@ module Flipper
97
97
  end
98
98
 
99
99
  def get_all
100
- db_gates = @gate_class.fetch(<<-SQL).to_a
101
- SELECT ff.key AS feature_key, fg.key, fg.value
102
- FROM #{@feature_class.table_name} ff
103
- LEFT JOIN #{@gate_class.table_name} fg ON ff.key = fg.feature_key
104
- SQL
100
+ feature_table = @feature_class.table_name.to_sym
101
+ gate_table = @gate_class.table_name.to_sym
102
+ features_sql = @feature_class.select(:key.qualify(feature_table).as(:feature_key))
103
+ .select_append(:key.qualify(gate_table))
104
+ .select_append(:value.qualify(gate_table))
105
+ .left_join(@gate_class.table_name.to_sym, feature_key: :key)
106
+ .sql
107
+
108
+ db_gates = @gate_class.fetch(features_sql).to_a
105
109
  grouped_db_gates = db_gates.group_by(&:feature_key)
106
110
  result = Hash.new { |hash, key| hash[key] = default_config }
107
111
  features = grouped_db_gates.keys.map { |key| Flipper::Feature.new(key, self) }
@@ -175,7 +179,11 @@ module Flipper
175
179
  @gate_class.db.transaction do
176
180
  clear(feature) if clear_feature
177
181
  @gate_class.where(args).delete
178
- @gate_class.create(gate_attrs(feature, gate, thing))
182
+
183
+ begin
184
+ @gate_class.create(gate_attrs(feature, gate, thing))
185
+ rescue ::Sequel::UniqueConstraintViolation
186
+ end
179
187
  end
180
188
  end
181
189
 
@@ -210,3 +218,9 @@ module Flipper
210
218
  end
211
219
  end
212
220
  end
221
+
222
+ Flipper.configure do |config|
223
+ config.adapter { Flipper::Adapters::Sequel.new }
224
+ end
225
+
226
+ Sequel::Model.include Flipper::Identifier
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = '0.21.0.rc1'.freeze
2
+ VERSION = '0.22.1'.freeze
3
3
  end
@@ -1,9 +1 @@
1
1
  require 'flipper/adapters/sequel'
2
-
3
- Flipper.configure do |config|
4
- config.default do
5
- Flipper.new(Flipper::Adapters::Sequel.new)
6
- end
7
- end
8
-
9
- Sequel::Model.include Flipper::Identifier
@@ -34,7 +34,7 @@ RSpec.describe Flipper::Adapters::Sequel do
34
34
  Flipper.configuration = nil
35
35
  Flipper.instance = nil
36
36
 
37
- load 'flipper-sequel.rb'
37
+ load 'flipper/adapters/sequel.rb'
38
38
  end
39
39
 
40
40
  it 'configures itself' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flipper-sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0.rc1
4
+ version: 0.22.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-01 00:00:00.000000000 Z
11
+ date: 2021-08-23 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.21.0.rc1
19
+ version: 0.22.1
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.21.0.rc1
26
+ version: 0.22.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sequel
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -77,9 +77,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
77
  version: '0'
78
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.1
82
+ version: '0'
83
83
  requirements: []
84
84
  rubygems_version: 3.0.3
85
85
  signing_key: