flipper-active_record 0.10.1 → 0.10.2

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: f80976fcd81ea700d78a8cda5c85b125815a55cc
4
- data.tar.gz: 06791fea7858d5cb235e4b4e608c66e0b47bad71
3
+ metadata.gz: b3f630ced8e147d7e7278e14d09ef3ea8cf43c7c
4
+ data.tar.gz: 5686e445a68398169fc238d09446cdf87e0bd4ab
5
5
  SHA512:
6
- metadata.gz: 1a44e6569a948c8ade7904711e053a9f7a3c1551e51ba6a1a83e36876e192629b7124af382b7f49b062c93845769e65f2461a4c9ad1469983dbf4ec9256893a7
7
- data.tar.gz: 0fbec19965eb31c8d5f827df79fd4c91535f7e76f18c264a794dcaa614a2b20ec90f527e480310ce4ecc2fb1860b00938869d78189d1717887999dec902b7787
6
+ metadata.gz: 862d115e1492cb8a10c1351609ac05c01027400032bbc7845e7a9bf24adef731b9266c6efa35deb84447e0852714c21cd87b9db164c397d16345a8048d8b0980
7
+ data.tar.gz: 4a7bb4aba98a72cbf907dae022d96b539d73f00d41bd6ae807cb504e215e599c435ffdbc21963f1e6b96c01b36a3c4de2e92cce99c8b42525e9050881e3222b1
@@ -72,27 +72,17 @@ module Flipper
72
72
  #
73
73
  # Returns a Hash of Flipper::Gate#key => value.
74
74
  def get(feature)
75
- result = {}
76
-
77
75
  db_gates = @gate_class.where(feature_key: feature.key)
76
+ result_for_feature(feature, db_gates)
77
+ end
78
78
 
79
- feature.gates.each do |gate|
80
- result[gate.key] = case gate.data_type
81
- when :boolean
82
- if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
83
- db_gate.value
84
- end
85
- when :integer
86
- if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
87
- db_gate.value
88
- end
89
- when :set
90
- db_gates.select { |db_gate| db_gate.key == gate.key.to_s }.map(&:value).to_set
91
- else
92
- unsupported_data_type gate.data_type
93
- end
79
+ def get_multi(features)
80
+ db_gates = @gate_class.where(feature_key: features.map(&:key))
81
+ grouped_db_gates = db_gates.group_by { |gate| gate.feature_key }
82
+ result = {}
83
+ features.each do |feature|
84
+ result[feature.key] = result_for_feature(feature, grouped_db_gates[feature.key])
94
85
  end
95
-
96
86
  result
97
87
  end
98
88
 
@@ -168,6 +158,30 @@ module Flipper
168
158
  def unsupported_data_type(data_type)
169
159
  raise "#{data_type} is not supported by this adapter"
170
160
  end
161
+
162
+ private
163
+
164
+ def result_for_feature(feature, db_gates)
165
+ db_gates ||= []
166
+ result = {}
167
+ feature.gates.each do |gate|
168
+ result[gate.key] = case gate.data_type
169
+ when :boolean
170
+ if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
171
+ db_gate.value
172
+ end
173
+ when :integer
174
+ if db_gate = db_gates.detect { |db_gate| db_gate.key == gate.key.to_s }
175
+ db_gate.value
176
+ end
177
+ when :set
178
+ db_gates.select { |db_gate| db_gate.key == gate.key.to_s }.map(&:value).to_set
179
+ else
180
+ unsupported_data_type gate.data_type
181
+ end
182
+ end
183
+ result
184
+ end
171
185
  end
172
186
  end
173
187
  end
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = "0.10.1".freeze
2
+ VERSION = "0.10.2".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flipper-active_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
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-11-19 00:00:00.000000000 Z
11
+ date: 2016-12-08 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.1
19
+ version: 0.10.2
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.1
26
+ version: 0.10.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement