flipper-ui 0.16.0 → 0.16.1

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: 25aa2745af2e31218cbd4b27af8193e58737cf9d
4
- data.tar.gz: cdda6a59fe7edcbdc5b06be258d2d685a2796636
3
+ metadata.gz: 1ee6d79027b24abab8374678ef7d18816eac6231
4
+ data.tar.gz: a2122c8642e23b1974e03787735cb2c04bf1f507
5
5
  SHA512:
6
- metadata.gz: c834961bc28b80d3890bcb150ef26a9dffc2f7450acb5d0f2dc6e49d5be0f13bbf435c49916a1c08adf6c1944e1100500cf49f00d147b6a28d5f05bd97ed4399
7
- data.tar.gz: 505af952e52ec8ccba2b37368c1fb84fcde104308d09a666f5479769677d6453edeea3088f70f74f49c4241a19f52eaa985f02f4c6400124b6b6a38cb5abc2ea
6
+ metadata.gz: 72670387cff1e1953d1e83ec70dd575c07790d18e2cc2f01d04bb90d2bd3832e65a595c9c679935a6965fdc61c6cffd351fe315f54b947ab2b8b7f2e46e807af
7
+ data.tar.gz: 2130c3fb5c76a3a19be90d92b06049e10a06ddc99f6aa4fb5dd8ed6ed607bcae72bb63c5e08dc83ede1e821b832c636b9ece16d544ea2dd436234520905fd928
@@ -10,7 +10,7 @@ module Flipper
10
10
  def feature_name
11
11
  @feature_name ||= begin
12
12
  match = request.path_info.match(self.class.route_regex)
13
- match ? match[:feature_name] : nil
13
+ match ? Rack::Utils.unescape(match[:feature_name]) : nil
14
14
  end
15
15
  end
16
16
  private :feature_name
@@ -35,7 +35,7 @@
35
35
  </div>
36
36
  </div>
37
37
  <div class="row">
38
- <div class="col-md mb-4 mb-md-0">
38
+ <div class="col-md mb-4 mb-lg-0">
39
39
  <div class="card">
40
40
  <h4 class="card-header"><%= Flipper::UI.configuration.percentage_of_actors.title %></h4>
41
41
  <div class="card-body">
@@ -128,7 +128,7 @@
128
128
  <form action="<%= script_name %>/features/<%= @feature.key %>/groups" method="post" class="form-inline">
129
129
  <%== csrf_input_tag %>
130
130
  <input type="hidden" name="operation" value="enable">
131
- <select name="value" class="form-control form-control-sm mr-sm-2 mb-2 mb-md-0">
131
+ <select name="value" class="form-control form-control-sm mr-sm-2 mb-2 mb-sm-0">
132
132
  <option value="">Select a group...</option>
133
133
  <% @feature.disabled_groups.each do |group| %>
134
134
  <option value="<%= group.name %>"><%= group.name %></option>
@@ -186,7 +186,7 @@
186
186
  <form action="<%= script_name %>/features/<%= @feature.key %>/actors" method="post" class="form-inline">
187
187
  <%== csrf_input_tag %>
188
188
  <input type="hidden" name="operation" value="enable">
189
- <input type="text" name="value" placeholder="ie: User:6" class="form-control form-control-sm mr-sm-2 mb-2 mb-md-0">
189
+ <input type="text" name="value" placeholder="ie: User:6" class="form-control form-control-sm mr-sm-2 mb-2 mb-sm-0">
190
190
  <input type="submit" value="Add Actor" class="btn btn-light btn-sm">
191
191
  </form>
192
192
  </div>
@@ -1,3 +1,3 @@
1
1
  module Flipper
2
- VERSION = '0.16.0'.freeze
2
+ VERSION = '0.16.1'.freeze
3
3
  end
@@ -1,59 +1,78 @@
1
1
  require 'helper'
2
2
 
3
3
  RSpec.describe Flipper::UI::Action do
4
- let(:action_subclass) do
5
- Class.new(described_class) do
6
- def noooope
7
- raise 'should never run this'
8
- end
4
+ describe 'request methods' do
5
+ let(:action_subclass) do
6
+ Class.new(described_class) do
7
+ def noooope
8
+ raise 'should never run this'
9
+ end
9
10
 
10
- def get
11
- [200, {}, 'get']
12
- end
11
+ def get
12
+ [200, {}, 'get']
13
+ end
13
14
 
14
- def post
15
- [200, {}, 'post']
16
- end
15
+ def post
16
+ [200, {}, 'post']
17
+ end
17
18
 
18
- def put
19
- [200, {}, 'put']
20
- end
19
+ def put
20
+ [200, {}, 'put']
21
+ end
21
22
 
22
- def delete
23
- [200, {}, 'delete']
23
+ def delete
24
+ [200, {}, 'delete']
25
+ end
24
26
  end
25
27
  end
26
- end
27
28
 
28
- it "won't run method that isn't whitelisted" do
29
- fake_request = Struct.new(:request_method, :env, :session).new('NOOOOPE', {}, {})
30
- action = action_subclass.new(flipper, fake_request)
31
- expect do
32
- action.run
33
- end.to raise_error(Flipper::UI::RequestMethodNotSupported)
34
- end
29
+ it "won't run method that isn't whitelisted" do
30
+ fake_request = Struct.new(:request_method, :env, :session).new('NOOOOPE', {}, {})
31
+ action = action_subclass.new(flipper, fake_request)
32
+ expect do
33
+ action.run
34
+ end.to raise_error(Flipper::UI::RequestMethodNotSupported)
35
+ end
35
36
 
36
- it 'will run get' do
37
- fake_request = Struct.new(:request_method, :env, :session).new('GET', {}, {})
38
- action = action_subclass.new(flipper, fake_request)
39
- expect(action.run).to eq([200, {}, 'get'])
40
- end
37
+ it 'will run get' do
38
+ fake_request = Struct.new(:request_method, :env, :session).new('GET', {}, {})
39
+ action = action_subclass.new(flipper, fake_request)
40
+ expect(action.run).to eq([200, {}, 'get'])
41
+ end
41
42
 
42
- it 'will run post' do
43
- fake_request = Struct.new(:request_method, :env, :session).new('POST', {}, {})
44
- action = action_subclass.new(flipper, fake_request)
45
- expect(action.run).to eq([200, {}, 'post'])
46
- end
43
+ it 'will run post' do
44
+ fake_request = Struct.new(:request_method, :env, :session).new('POST', {}, {})
45
+ action = action_subclass.new(flipper, fake_request)
46
+ expect(action.run).to eq([200, {}, 'post'])
47
+ end
47
48
 
48
- it 'will run put' do
49
- fake_request = Struct.new(:request_method, :env, :session).new('PUT', {}, {})
50
- action = action_subclass.new(flipper, fake_request)
51
- expect(action.run).to eq([200, {}, 'put'])
49
+ it 'will run put' do
50
+ fake_request = Struct.new(:request_method, :env, :session).new('PUT', {}, {})
51
+ action = action_subclass.new(flipper, fake_request)
52
+ expect(action.run).to eq([200, {}, 'put'])
53
+ end
52
54
  end
53
55
 
54
- it 'will run delete' do
55
- fake_request = Struct.new(:request_method, :env, :session).new('DELETE', {}, {})
56
- action = action_subclass.new(flipper, fake_request)
57
- expect(action.run).to eq([200, {}, 'delete'])
56
+ describe 'FeatureNameFromRoute' do
57
+ let(:action_subclass) do
58
+ Class.new(described_class) do |parent|
59
+ include parent::FeatureNameFromRoute
60
+
61
+ route %r{\A/features/(?<feature_name>.*)\Z}
62
+
63
+ def get
64
+ [200, { feature_name: feature_name }, 'get']
65
+ end
66
+ end
67
+ end
68
+
69
+ it 'decodes feature_name' do
70
+ requested_feature_name = Rack::Utils.escape("team:side_pane")
71
+ fake_request = Struct
72
+ .new(:request_method, :env, :session, :path_info)
73
+ .new('GET', {}, {}, "/features/#{requested_feature_name}")
74
+ action = action_subclass.new(flipper, fake_request)
75
+ expect(action.run).to eq([200, { feature_name: "team:side_pane" }, 'get'])
76
+ end
58
77
  end
59
78
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flipper-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.16.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-01 00:00:00.000000000 Z
11
+ date: 2019-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -56,14 +56,14 @@ dependencies:
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 0.16.0
59
+ version: 0.16.1
60
60
  type: :runtime
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: 0.16.0
66
+ version: 0.16.1
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: erubis
69
69
  requirement: !ruby/object:Gem::Requirement