flipper-sequel 0.10.2 → 0.11.0.beta1

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