flipper-sequel 0.21.0.rc1 → 0.22.1

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
  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: