flipper-api 0.17.1 → 0.20.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/flipper-api.gemspec +2 -3
- data/lib/flipper/api.rb +3 -1
- data/lib/flipper/api/v1/actions/features.rb +13 -13
- data/lib/flipper/api/v1/decorators/feature.rb +5 -3
- data/lib/flipper/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 622414d66b3f6c5f78e1b97517a524bda8fcef67b856b94dbe9143f2c311d009
|
4
|
+
data.tar.gz: 9e480ccda42da003c30e8686d10909f4c0b5c76bcd35b5d106f26bd1bff16cee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ffc20e7c12bde3b9a0226cedf53ebb5bbcb4a7d144d001b8117c1afab432564c4d5c91eee54b426259b68e8b347a170ea8343e427125989a0457a4d4475668e
|
7
|
+
data.tar.gz: 4d8052fa5976fe0e9b3e38695af6db08fe664b181db4fa6a737f3de1725870c4987a4361206bb3e07dbda9c4e29aeefe8f6bd0f1dd0292d4d2d46d067ce6498d
|
data/flipper-api.gemspec
CHANGED
@@ -10,11 +10,10 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.authors = ['John Nunemaker']
|
11
11
|
gem.email = ['nunemaker@gmail.com']
|
12
12
|
gem.summary = 'API for the Flipper gem'
|
13
|
-
gem.description = 'Rack middleware that provides an API for the flipper gem.'
|
14
13
|
gem.license = 'MIT'
|
15
14
|
gem.homepage = 'https://github.com/jnunemaker/flipper'
|
16
|
-
gem.files = `git ls-files`.split("\n").select(&flipper_api_files) + ['lib/flipper/version.rb']
|
17
|
-
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n").select(&flipper_api_files)
|
15
|
+
gem.files = `git ls-files`.split("\n").select(&flipper_api_files) + ['lib/flipper/version.rb']
|
16
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n").select(&flipper_api_files)
|
18
17
|
gem.name = 'flipper-api'
|
19
18
|
gem.require_paths = ['lib']
|
20
19
|
gem.version = Flipper::VERSION
|
data/lib/flipper/api.rb
CHANGED
@@ -9,12 +9,14 @@ module Flipper
|
|
9
9
|
|
10
10
|
def self.app(flipper = nil, options = {})
|
11
11
|
env_key = options.fetch(:env_key, 'flipper')
|
12
|
+
memoizer_options = options.fetch(:memoizer_options, {})
|
13
|
+
|
12
14
|
app = ->(_) { [404, { 'Content-Type'.freeze => CONTENT_TYPE }, ['{}'.freeze]] }
|
13
15
|
builder = Rack::Builder.new
|
14
16
|
yield builder if block_given?
|
15
17
|
builder.use Flipper::Api::JsonParams
|
16
18
|
builder.use Flipper::Middleware::SetupEnv, flipper, env_key: env_key
|
17
|
-
builder.use Flipper::Middleware::Memoizer, env_key: env_key
|
19
|
+
builder.use Flipper::Middleware::Memoizer, memoizer_options.merge(env_key: env_key)
|
18
20
|
builder.use Flipper::Api::Middleware, env_key: env_key
|
19
21
|
builder.run app
|
20
22
|
klass = self
|
@@ -11,19 +11,19 @@ module Flipper
|
|
11
11
|
def get
|
12
12
|
keys = params['keys']
|
13
13
|
features = if keys
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
14
|
+
names = keys.split(',')
|
15
|
+
if names.empty?
|
16
|
+
[]
|
17
|
+
else
|
18
|
+
existing_feature_names = names.keep_if do |feature_name|
|
19
|
+
feature_exists?(feature_name)
|
20
|
+
end
|
21
|
+
|
22
|
+
flipper.preload(existing_feature_names)
|
23
|
+
end
|
24
|
+
else
|
25
|
+
flipper.features
|
26
|
+
end
|
27
27
|
|
28
28
|
decorated_features = features.map do |feature|
|
29
29
|
Decorators::Feature.new(feature).as_json
|
@@ -12,12 +12,14 @@ module Flipper
|
|
12
12
|
# Public: Returns instance as hash that is ready to be json dumped.
|
13
13
|
def as_json
|
14
14
|
gate_values = feature.adapter.get(self)
|
15
|
+
gates_json = gates.map do |gate|
|
16
|
+
Decorators::Gate.new(gate, gate_values[gate.key]).as_json
|
17
|
+
end
|
18
|
+
|
15
19
|
{
|
16
20
|
'key' => key,
|
17
21
|
'state' => state.to_s,
|
18
|
-
'gates' =>
|
19
|
-
Decorators::Gate.new(gate, gate_values[gate.key]).as_json
|
20
|
-
end,
|
22
|
+
'gates' => gates_json,
|
21
23
|
}
|
22
24
|
end
|
23
25
|
end
|
data/lib/flipper/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flipper-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.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:
|
11
|
+
date: 2020-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -36,15 +36,15 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 0.
|
39
|
+
version: 0.20.0.beta1
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 0.
|
47
|
-
description:
|
46
|
+
version: 0.20.0.beta1
|
47
|
+
description:
|
48
48
|
email:
|
49
49
|
- nunemaker@gmail.com
|
50
50
|
executables: []
|
@@ -101,9 +101,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
101
|
version: '0'
|
102
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
103
|
requirements:
|
104
|
-
- - "
|
104
|
+
- - ">"
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
106
|
+
version: 1.3.1
|
107
107
|
requirements: []
|
108
108
|
rubygems_version: 3.0.3
|
109
109
|
signing_key:
|