flipper-sequel 0.11.0.beta9 → 0.11.0.rc1

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