flipper-api 0.17.1 → 0.20.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 +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:
|