flipper-sequel 0.11.0.beta9 → 0.11.0.rc1

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: 0442ee172cffbf9393ecdf6ddaf0b94e37d69c89
4
- data.tar.gz: 2f5305a832dcc206729c33ddc1b4c2278d0f16f1
3
+ metadata.gz: 90dd7629ae70dfd567418340e4ef932d48c63a86
4
+ data.tar.gz: 72c586010cb4503ede3848e2b3a9471ca2de70c6
5
5
  SHA512:
6
- metadata.gz: 68f4fb0c635683510bb61c706ccdfd03472c7d6f65c03310c22d7ca4b19ee089887b50ef350a2d9c59e87c22bdd94e1f3b0d398a53ed074fbd58f23d7922d1e4
7
- data.tar.gz: dff6d5b4d04dc2555d63857b2f5b2e3fe5efef5f8e61e023858e8fac5d68cbe0c73768ea7482b17b19226427cf867dcb586e9b5b2f4726bf50a3aeddf962788e
6
+ metadata.gz: bbd9d418f58b8f8db4825fccd69989614a0cdcda5b4857ee080b7ff5b11832bea737742a5a69f2a0d9a2415284ce7b89f8f824be42132c88b0a5bb5b5bbf04b2
7
+ data.tar.gz: a383172a9b10de5c8cfe0732b0706a62db7b49cd0e0472fda88a2c839f715e6cc81a76d9108638e0f230aba7a5a09346080d31ed0261a902bae8b16fff1b85d0
@@ -7,18 +7,25 @@ module Flipper
7
7
  class Sequel
8
8
  include ::Flipper::Adapter
9
9
 
10
- # Private: Do not use outside of this adapter.
11
- class Feature < ::Sequel::Model(:flipper_features)
12
- unrestrict_primary_key
10
+ begin
11
+ old = ::Sequel::Model.require_valid_table
12
+ ::Sequel::Model.require_valid_table = false
13
13
 
14
- plugin :timestamps, update_on_create: true
15
- end
14
+ # Private: Do not use outside of this adapter.
15
+ class Feature < ::Sequel::Model(:flipper_features)
16
+ unrestrict_primary_key
17
+
18
+ plugin :timestamps, update_on_create: true
19
+ end
16
20
 
17
- # Private: Do not use outside of this adapter.
18
- class Gate < ::Sequel::Model(:flipper_gates)
19
- unrestrict_primary_key
21
+ # Private: Do not use outside of this adapter.
22
+ class Gate < ::Sequel::Model(:flipper_gates)
23
+ unrestrict_primary_key
20
24
 
21
- plugin :timestamps, update_on_create: true
25
+ plugin :timestamps, update_on_create: true
26
+ end
27
+ ensure
28
+ ::Sequel::Model.require_valid_table = old
22
29
  end
23
30
 
24
31
  # Public: The name of the adapter.
@@ -89,6 +96,21 @@ module Flipper
89
96
  result
90
97
  end
91
98
 
99
+ def get_all
100
+ db_gates = @gate_class.fetch(<<-SQL).to_a
101
+ SELECT g.*
102
+ FROM #{@gate_class.table_name} g
103
+ INNER JOIN #{@feature_class.table_name} f ON f.key = g.feature_key
104
+ SQL
105
+ grouped_db_gates = db_gates.group_by(&:feature_key)
106
+ result = Hash.new { |hash, key| hash[key] = default_config }
107
+ features = grouped_db_gates.keys.map { |key| Flipper::Feature.new(key, self) }
108
+ features.each do |feature|
109
+ result[feature.key] = result_for_feature(feature, grouped_db_gates[feature.key])
110
+ end
111
+ result
112
+ end
113
+
92
114
  # Public: Enables a gate for a given thing.
93
115
  #
94
116
  # feature - The Flipper::Feature for the gate.
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = '0.11.0.beta9'.freeze
2
+ VERSION = '0.11.0.rc1'.freeze
3
3
  end
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.11.0.beta9
4
+ version: 0.11.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-28 00:00:00.000000000 Z
11
+ date: 2017-11-04 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.11.0.beta9
19
+ version: 0.11.0.rc1
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.11.0.beta9
26
+ version: 0.11.0.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sequel
29
29
  requirement: !ruby/object:Gem::Requirement