flipper-sequel 0.10.2 → 0.11.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
  SHA1:
3
- metadata.gz: 90e3061ed905c5f60e924d150ab6528c9c0441cb
4
- data.tar.gz: 427a99d66693ebd319e32b152167c7d6a1c5ca86
3
+ metadata.gz: 97719a3b02001fa2a41c5d2df3c1a41529946581
4
+ data.tar.gz: 82a6ab85e1d35f13b2844b1c15f455c42e974c26
5
5
  SHA512:
6
- metadata.gz: a6427b163839819f4eb5bf9776553ddada04aab33b316f67b96d1ce4eea53b7c597ef622fa442588e491d545e41cd5751b34617a20981c3e36a8f47eeb3d2b35
7
- data.tar.gz: 60da3d47612c6d2b559cb22c593bbcd8843c46ecebb2887110497c572378bf3df9b1976e5233701bb439fea627dae5b3a52ae9f4ac6a77e73fb680549f471659
6
+ metadata.gz: 8e7f2d381bb3bf56d64bd64dad06a6deb4c76574cf9d0a2fac4291f94bfe0686fab41633f2b2fd6819d2a45f41822e7433cab7df7c49d6ad0c4757fe8f32cc12
7
+ data.tar.gz: 4cdd6c49c10ea4c2b6b6091eca8e78b212b664a028ad73b123ee25ddc7cf0ed00f709a45052d31cb4a7880808ee3bc2258d6db7a55ec9c8d3557ccfa6b1c93d7
@@ -1,6 +1,6 @@
1
1
  # Flipper Sequel
2
2
 
3
- A Sequel adapter for [Flipper](https://github.com/jnunemaker/flipper).
3
+ A [Sequel](https://github.com/jeremyevans/sequel) adapter for [Flipper](https://github.com/jnunemaker/flipper).
4
4
 
5
5
  ## Installation
6
6
 
@@ -1,25 +1,25 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require File.expand_path('../lib/flipper/version', __FILE__)
3
3
 
4
- flipper_sequel_files = lambda { |file| file =~ /sequel/ }
4
+ flipper_sequel_files = ->(file) { file =~ /sequel/ }
5
5
 
6
6
  Gem::Specification.new do |gem|
7
- gem.authors = ["John Nunemaker"]
8
- gem.email = ["nunemaker@gmail.com"]
9
- gem.summary = "Sequel adapter for Flipper"
10
- gem.description = "Sequel adapter for Flipper"
11
- gem.license = "MIT"
12
- gem.homepage = "https://github.com/jnunemaker/flipper"
7
+ gem.authors = ['John Nunemaker']
8
+ gem.email = ['nunemaker@gmail.com']
9
+ gem.summary = 'Sequel adapter for Flipper'
10
+ gem.description = 'Sequel adapter for Flipper'
11
+ gem.license = 'MIT'
12
+ gem.homepage = 'https://github.com/jnunemaker/flipper'
13
13
 
14
14
  extra_files = [
15
- "lib/flipper/version.rb",
15
+ 'lib/flipper/version.rb',
16
16
  ]
17
17
  gem.files = `git ls-files`.split("\n").select(&flipper_sequel_files) + extra_files
18
18
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n").select(&flipper_sequel_files)
19
- gem.name = "flipper-sequel"
20
- gem.require_paths = ["lib"]
19
+ gem.name = 'flipper-sequel'
20
+ gem.require_paths = ['lib']
21
21
  gem.version = Flipper::VERSION
22
22
 
23
23
  gem.add_dependency 'flipper', "~> #{Flipper::VERSION}"
24
- gem.add_dependency 'sequel', ">= 4.0.0", "< 5"
24
+ gem.add_dependency 'sequel', '>= 4.0.0', '< 5'
25
25
  end
@@ -9,11 +9,15 @@ module Flipper
9
9
 
10
10
  # Private: Do not use outside of this adapter.
11
11
  class Feature < ::Sequel::Model(:flipper_features)
12
+ unrestrict_primary_key
13
+
12
14
  plugin :timestamps, update_on_create: true
13
15
  end
14
16
 
15
17
  # Private: Do not use outside of this adapter.
16
18
  class Gate < ::Sequel::Model(:flipper_gates)
19
+ unrestrict_primary_key
20
+
17
21
  plugin :timestamps, update_on_create: true
18
22
  end
19
23
 
@@ -77,7 +81,7 @@ module Flipper
77
81
 
78
82
  def get_multi(features)
79
83
  db_gates = @gate_class.where(feature_key: features.map(&:key)).to_a
80
- grouped_db_gates = db_gates.group_by { |gate| gate.feature_key }
84
+ grouped_db_gates = db_gates.group_by(&:feature_key)
81
85
  result = {}
82
86
  features.each do |feature|
83
87
  result[feature.key] = result_for_feature(feature, grouped_db_gates[feature.key])
@@ -98,7 +102,7 @@ module Flipper
98
102
  @gate_class.db.transaction do
99
103
  args = {
100
104
  feature_key: feature.key,
101
- key: gate.key.to_s
105
+ key: gate.key.to_s,
102
106
  }
103
107
  @gate_class.where(args).delete
104
108
 
@@ -128,7 +132,7 @@ module Flipper
128
132
  @gate_class.db.transaction do
129
133
  args = {
130
134
  feature_key: feature.key.to_s,
131
- key: gate.key.to_s
135
+ key: gate.key.to_s,
132
136
  }
133
137
  @gate_class.where(args).delete
134
138
 
@@ -154,27 +158,28 @@ module Flipper
154
158
  {
155
159
  feature_key: feature.key.to_s,
156
160
  key: gate.key.to_s,
157
- value: thing.value.to_s
161
+ value: thing.value.to_s,
158
162
  }
159
163
  end
160
164
 
161
165
  def result_for_feature(feature, db_gates)
162
166
  db_gates ||= []
163
167
  feature.gates.each_with_object({}) do |gate, result|
164
- result[gate.key] = case gate.data_type
165
- when :boolean
166
- if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
167
- db_gate.value
168
+ result[gate.key] =
169
+ case gate.data_type
170
+ when :boolean
171
+ if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
172
+ db_gate.value
173
+ end
174
+ when :integer
175
+ if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
176
+ db_gate.value
177
+ end
178
+ when :set
179
+ db_gates.select { |db_gate| db_gate.key == gate.key.to_s }.map(&:value).to_set
180
+ else
181
+ unsupported_data_type gate.data_type
168
182
  end
169
- when :integer
170
- if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
171
- db_gate.value
172
- end
173
- when :set
174
- db_gates.select { |db_gate| db_gate.key == gate.key.to_s }.map(&:value).to_set
175
- else
176
- unsupported_data_type gate.data_type
177
- end
178
183
  end
179
184
  end
180
185
  end
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = "0.10.2".freeze
2
+ VERSION = '0.11.0.beta1'.freeze
3
3
  end
@@ -1,20 +1,19 @@
1
1
  class CreateFlipperTablesSequel < Sequel::Migration
2
2
  def up
3
- create_table :flipper_features do |t|
4
- String :key, null: false
3
+ create_table :flipper_features do |_t|
4
+ String :key, primary_key: true, null: false
5
5
  DateTime :created_at, null: false
6
6
  DateTime :updated_at, null: false
7
7
  end
8
- add_index :flipper_features, :key, unique: true
9
8
 
10
- create_table :flipper_gates do |t|
9
+ create_table :flipper_gates do |_t|
11
10
  String :feature_key, null: false
12
11
  String :key, null: false
13
12
  String :value
14
13
  DateTime :created_at, null: false
15
14
  DateTime :updated_at, null: false
15
+ primary_key [:feature_key, :key, :value]
16
16
  end
17
- add_index :flipper_gates, [:feature_key, :key, :value], unique: true
18
17
  end
19
18
 
20
19
  def down
@@ -1,7 +1,7 @@
1
1
  require 'helper'
2
2
  require 'sequel'
3
3
 
4
- Sequel::Model.db = Sequel.sqlite(':memory:')
4
+ Sequel::Model.db = Sequel.sqlite(':memory:')
5
5
  Sequel.extension :migration, :core_extensions
6
6
 
7
7
  require 'flipper/adapters/sequel'
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
  require 'sequel'
3
3
 
4
- Sequel::Model.db = Sequel.sqlite(':memory:')
4
+ Sequel::Model.db = Sequel.sqlite(':memory:')
5
5
  Sequel.extension :migration, :core_extensions
6
6
 
7
7
  require 'flipper/adapters/sequel'
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.10.2
4
+ version: 0.11.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: 2016-12-08 00:00:00.000000000 Z
11
+ date: 2017-04-02 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.10.2
19
+ version: 0.11.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.10.2
26
+ version: 0.11.0.beta1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sequel
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -76,12 +76,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
76
  version: '0'
77
77
  required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ">="
79
+ - - ">"
80
80
  - !ruby/object:Gem::Version
81
- version: '0'
81
+ version: 1.3.1
82
82
  requirements: []
83
83
  rubyforge_project:
84
- rubygems_version: 2.4.5.1
84
+ rubygems_version: 2.5.2
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: Sequel adapter for Flipper