flipper-ui 0.16.2 → 0.19.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +5 -5
  2. data/docs/ui/README.md +34 -24
  3. data/docs/ui/images/banner.png +0 -0
  4. data/docs/ui/images/description.png +0 -0
  5. data/docs/ui/images/feature.png +0 -0
  6. data/docs/ui/images/features.png +0 -0
  7. data/examples/ui/basic.ru +20 -0
  8. data/flipper-ui.gemspec +2 -3
  9. data/lib/flipper/ui.rb +4 -7
  10. data/lib/flipper/ui/action.rb +3 -6
  11. data/lib/flipper/ui/actions/feature.rb +5 -2
  12. data/lib/flipper/ui/actions/features.rb +14 -1
  13. data/lib/flipper/ui/actions/file.rb +1 -1
  14. data/lib/flipper/ui/assets/javascripts/application.coffee +5 -3
  15. data/lib/flipper/ui/configuration.rb +34 -10
  16. data/lib/flipper/ui/decorators/feature.rb +39 -13
  17. data/lib/flipper/ui/public/css/application.css +20 -6493
  18. data/lib/flipper/ui/public/js/application.js +5 -5
  19. data/lib/flipper/ui/util.rb +40 -0
  20. data/lib/flipper/ui/views/add_actor.erb +2 -2
  21. data/lib/flipper/ui/views/add_feature.erb +2 -2
  22. data/lib/flipper/ui/views/add_group.erb +1 -1
  23. data/lib/flipper/ui/views/feature.erb +199 -180
  24. data/lib/flipper/ui/views/features.erb +55 -36
  25. data/lib/flipper/ui/views/layout.erb +4 -14
  26. data/lib/flipper/version.rb +1 -1
  27. data/spec/flipper/ui/actions/actors_gate_spec.rb +9 -13
  28. data/spec/flipper/ui/actions/feature_spec.rb +14 -16
  29. data/spec/flipper/ui/actions/features_spec.rb +49 -14
  30. data/spec/flipper/ui/actions/file_spec.rb +0 -10
  31. data/spec/flipper/ui/actions/groups_gate_spec.rb +0 -6
  32. data/spec/flipper/ui/actions/percentage_of_actors_gate_spec.rb +0 -2
  33. data/spec/flipper/ui/actions/percentage_of_time_gate_spec.rb +0 -2
  34. data/spec/flipper/ui/configuration_spec.rb +69 -34
  35. data/spec/flipper/ui/decorators/feature_spec.rb +2 -32
  36. data/spec/flipper/ui_spec.rb +1 -1
  37. metadata +21 -133
  38. data/docs/ui/images/configured-ui.png +0 -0
  39. data/docs/ui/images/environment-banner.png +0 -0
  40. data/lib/flipper/ui/assets/stylesheets/.DS_Store +0 -0
  41. data/lib/flipper/ui/assets/stylesheets/application.scss +0 -19
  42. data/lib/flipper/ui/assets/stylesheets/bootstrap/_alert.scss +0 -51
  43. data/lib/flipper/ui/assets/stylesheets/bootstrap/_badge.scss +0 -47
  44. data/lib/flipper/ui/assets/stylesheets/bootstrap/_breadcrumb.scss +0 -38
  45. data/lib/flipper/ui/assets/stylesheets/bootstrap/_button-group.scss +0 -166
  46. data/lib/flipper/ui/assets/stylesheets/bootstrap/_buttons.scss +0 -143
  47. data/lib/flipper/ui/assets/stylesheets/bootstrap/_card.scss +0 -270
  48. data/lib/flipper/ui/assets/stylesheets/bootstrap/_carousel.scss +0 -191
  49. data/lib/flipper/ui/assets/stylesheets/bootstrap/_close.scss +0 -34
  50. data/lib/flipper/ui/assets/stylesheets/bootstrap/_code.scss +0 -56
  51. data/lib/flipper/ui/assets/stylesheets/bootstrap/_custom-forms.scss +0 -297
  52. data/lib/flipper/ui/assets/stylesheets/bootstrap/_dropdown.scss +0 -131
  53. data/lib/flipper/ui/assets/stylesheets/bootstrap/_forms.scss +0 -333
  54. data/lib/flipper/ui/assets/stylesheets/bootstrap/_functions.scss +0 -86
  55. data/lib/flipper/ui/assets/stylesheets/bootstrap/_grid.scss +0 -52
  56. data/lib/flipper/ui/assets/stylesheets/bootstrap/_images.scss +0 -42
  57. data/lib/flipper/ui/assets/stylesheets/bootstrap/_input-group.scss +0 -159
  58. data/lib/flipper/ui/assets/stylesheets/bootstrap/_jumbotron.scss +0 -16
  59. data/lib/flipper/ui/assets/stylesheets/bootstrap/_list-group.scss +0 -115
  60. data/lib/flipper/ui/assets/stylesheets/bootstrap/_media.scss +0 -8
  61. data/lib/flipper/ui/assets/stylesheets/bootstrap/_mixins.scss +0 -42
  62. data/lib/flipper/ui/assets/stylesheets/bootstrap/_modal.scss +0 -168
  63. data/lib/flipper/ui/assets/stylesheets/bootstrap/_nav.scss +0 -118
  64. data/lib/flipper/ui/assets/stylesheets/bootstrap/_navbar.scss +0 -311
  65. data/lib/flipper/ui/assets/stylesheets/bootstrap/_pagination.scss +0 -77
  66. data/lib/flipper/ui/assets/stylesheets/bootstrap/_popover.scss +0 -183
  67. data/lib/flipper/ui/assets/stylesheets/bootstrap/_print.scss +0 -124
  68. data/lib/flipper/ui/assets/stylesheets/bootstrap/_progress.scss +0 -33
  69. data/lib/flipper/ui/assets/stylesheets/bootstrap/_reboot.scss +0 -482
  70. data/lib/flipper/ui/assets/stylesheets/bootstrap/_root.scss +0 -19
  71. data/lib/flipper/ui/assets/stylesheets/bootstrap/_tables.scss +0 -180
  72. data/lib/flipper/ui/assets/stylesheets/bootstrap/_tooltip.scss +0 -115
  73. data/lib/flipper/ui/assets/stylesheets/bootstrap/_transitions.scss +0 -36
  74. data/lib/flipper/ui/assets/stylesheets/bootstrap/_type.scss +0 -125
  75. data/lib/flipper/ui/assets/stylesheets/bootstrap/_utilities.scss +0 -14
  76. data/lib/flipper/ui/assets/stylesheets/bootstrap/_variables.scss +0 -894
  77. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-grid.scss +0 -32
  78. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-reboot.scss +0 -12
  79. data/lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap.scss +0 -42
  80. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -13
  81. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  82. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -12
  83. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_border-radius.scss +0 -35
  84. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +0 -5
  85. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +0 -123
  86. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_buttons.scss +0 -109
  87. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_caret.scss +0 -65
  88. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_clearfix.scss +0 -7
  89. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_float.scss +0 -11
  90. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_forms.scss +0 -137
  91. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_gradients.scss +0 -45
  92. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -67
  93. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid.scss +0 -52
  94. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -39
  95. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_image.scss +0 -36
  96. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_list-group.scss +0 -21
  97. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_lists.scss +0 -7
  98. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  99. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
  100. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_pagination.scss +0 -22
  101. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_reset-text.scss +0 -17
  102. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_resize.scss +0 -6
  103. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -35
  104. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_size.scss +0 -6
  105. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -30
  106. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -14
  107. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -9
  108. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +0 -8
  109. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_transition.scss +0 -9
  110. data/lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -7
  111. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  112. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  113. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -59
  114. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_clearfix.scss +0 -3
  115. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_display.scss +0 -38
  116. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -52
  117. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -46
  118. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_float.scss +0 -9
  119. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_position.scss +0 -36
  120. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  121. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -12
  122. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -51
  123. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_text.scss +0 -52
  124. data/lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -11
  125. data/lib/flipper/ui/assets/stylesheets/primer/.scss-lint.yml +0 -446
  126. data/lib/flipper/ui/assets/stylesheets/primer/_alerts.scss +0 -106
  127. data/lib/flipper/ui/assets/stylesheets/primer/_avatars.scss +0 -36
  128. data/lib/flipper/ui/assets/stylesheets/primer/_base.scss +0 -40
  129. data/lib/flipper/ui/assets/stylesheets/primer/_blankslate.scss +0 -96
  130. data/lib/flipper/ui/assets/stylesheets/primer/_buttons.scss +0 -404
  131. data/lib/flipper/ui/assets/stylesheets/primer/_counter.scss +0 -10
  132. data/lib/flipper/ui/assets/stylesheets/primer/_filter-list.scss +0 -68
  133. data/lib/flipper/ui/assets/stylesheets/primer/_flex-table.scss +0 -20
  134. data/lib/flipper/ui/assets/stylesheets/primer/_forms.scss +0 -756
  135. data/lib/flipper/ui/assets/stylesheets/primer/_layout.scss +0 -69
  136. data/lib/flipper/ui/assets/stylesheets/primer/_menu.scss +0 -113
  137. data/lib/flipper/ui/assets/stylesheets/primer/_mixins.scss +0 -53
  138. data/lib/flipper/ui/assets/stylesheets/primer/_normalize.scss +0 -425
  139. data/lib/flipper/ui/assets/stylesheets/primer/_states.scss +0 -32
  140. data/lib/flipper/ui/assets/stylesheets/primer/_tabnav.scss +0 -65
  141. data/lib/flipper/ui/assets/stylesheets/primer/_tooltips.scss +0 -255
  142. data/lib/flipper/ui/assets/stylesheets/primer/_truncate.scss +0 -27
  143. data/lib/flipper/ui/assets/stylesheets/primer/_type.scss +0 -92
  144. data/lib/flipper/ui/assets/stylesheets/primer/_utility.scss +0 -73
  145. data/lib/flipper/ui/assets/stylesheets/primer/_variables.scss +0 -34
  146. data/lib/flipper/ui/assets/stylesheets/primer/primer.scss +0 -39
  147. data/lib/flipper/ui/eruby.rb +0 -11
  148. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  149. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -288
  150. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  151. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  152. data/lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  153. data/lib/flipper/ui/public/images/remove.png +0 -0
  154. data/lib/flipper/ui/public/octicons/octicons.less +0 -235
  155. data/lib/flipper/ui/public/octicons/sprockets-octicons.scss +0 -232
@@ -41,12 +41,10 @@ RSpec.describe Flipper::UI::Actions::PercentageOfTimeGate do
41
41
  expect(flipper[:search].percentage_of_time_value).to be(0)
42
42
  end
43
43
 
44
- # rubocop:disable Metrics/LineLength
45
44
  it 'redirects back to feature' do
46
45
  expect(last_response.status).to be(302)
47
46
  expect(last_response.headers['Location']).to eq('/features/search?error=Invalid+percentage+of+time+value%3A+value+must+be+a+positive+number+less+than+or+equal+to+100%2C+but+was+555')
48
47
  end
49
- # rubocop:enable Metrics/LineLength
50
48
  end
51
49
  end
52
50
  end
@@ -3,43 +3,10 @@ require 'helper'
3
3
  RSpec.describe Flipper::UI::Configuration do
4
4
  let(:configuration) { described_class.new }
5
5
 
6
- describe "#actors" do
7
- it "has default text" do
8
- expect(configuration.actors.title).to eq("Actors")
9
- expect(configuration.actors.description).to eq("Enable actors using the form above.")
10
- end
11
-
12
- it "can be updated" do
13
- configuration.actors.title = "Actors Section"
14
- expect(configuration.actors.title).to eq("Actors Section")
15
- end
16
- end
17
-
18
- describe "#groups" do
19
- it "has default text" do
20
- expect(configuration.groups.title).to eq("Groups")
21
- expect(configuration.groups.description).to eq("Enable groups using the form above.")
22
- end
23
- end
24
-
25
- describe "#percentage_of_actors" do
26
- it "has default text" do
27
- expect(configuration.percentage_of_actors.title).to eq("Percentage of Actors")
28
- expect(configuration.percentage_of_actors.description).to eq("Percentage of actors functions independently of percentage of time. If you enable 50% of Actors and 25% of Time then the feature will always be enabled for 50% of users and occasionally enabled 25% of the time for everyone.") # rubocop:disable Metrics/LineLength
29
- end
30
- end
31
-
32
- describe "#percentage_of_time" do
33
- it "has default text" do
34
- expect(configuration.percentage_of_time.title).to eq("Percentage of Time")
35
- expect(configuration.percentage_of_time.description).to eq("Percentage of actors functions independently of percentage of time. If you enable 50% of Actors and 25% of Time then the feature will always be enabled for 50% of users and occasionally enabled 25% of the time for everyone.") # rubocop:disable Metrics/LineLength
36
- end
37
- end
38
-
39
6
  describe "#delete" do
40
7
  it "has default text" do
41
8
  expect(configuration.delete.title).to eq("Danger Zone")
42
- expect(configuration.delete.description).to eq("Deleting a feature removes it from the list of features and disables it for everyone.") # rubocop:disable Metrics/LineLength
9
+ expect(configuration.delete.description).to eq("Deleting a feature removes it from the list of features and disables it for everyone.")
43
10
  end
44
11
  end
45
12
 
@@ -102,4 +69,72 @@ RSpec.describe Flipper::UI::Configuration do
102
69
  expect(configuration.feature_removal_enabled).to eq(false)
103
70
  end
104
71
  end
72
+
73
+ describe "#fun" do
74
+ it "has default value" do
75
+ expect(configuration.fun).to eq(true)
76
+ end
77
+
78
+ it "can be updated" do
79
+ configuration.fun = false
80
+ expect(configuration.fun).to eq(false)
81
+ end
82
+ end
83
+
84
+ describe "#descriptions_source" do
85
+ it "has default value" do
86
+ expect(configuration.descriptions_source.call(%w[foo bar])).to eq({})
87
+ end
88
+
89
+ context "descriptions source is provided" do
90
+ it "can be updated" do
91
+ configuration.descriptions_source = lambda do |_keys|
92
+ YAML.load_file(FlipperRoot.join('spec/support/descriptions.yml'))
93
+ end
94
+ keys = %w[some_awesome_feature foo]
95
+ result = configuration.descriptions_source.call(keys)
96
+ expected = {
97
+ "some_awesome_feature" => "Awesome feature description",
98
+ }
99
+ expect(result).to eq(expected)
100
+ end
101
+ end
102
+ end
103
+
104
+ describe "#show_feature_description_in_list" do
105
+ it "has default value" do
106
+ expect(configuration.show_feature_description_in_list).to eq(false)
107
+ end
108
+
109
+ it "can be updated" do
110
+ configuration.show_feature_description_in_list = true
111
+ expect(configuration.show_feature_description_in_list).to eq(true)
112
+ end
113
+ end
114
+
115
+ describe "#show_feature_description_in_list?" do
116
+ subject { configuration.show_feature_description_in_list? }
117
+
118
+ context 'when using_descriptions? is false and show_feature_description_in_list is false' do
119
+ it { is_expected.to eq(false) }
120
+ end
121
+
122
+ context 'when using_descriptions? is false and show_feature_description_in_list is true' do
123
+ before { configuration.show_feature_description_in_list = true }
124
+ it { is_expected.to eq(false) }
125
+ end
126
+
127
+ context 'when using_descriptions? is true and show_feature_description_in_list is false' do
128
+ before { allow(configuration).to receive(:using_descriptions?).and_return(true) }
129
+ it { is_expected.to eq(false) }
130
+ end
131
+
132
+ context 'when using_descriptions? is true and show_feature_description_in_list is true' do
133
+ before do
134
+ allow(configuration).to receive(:using_descriptions?).and_return(true)
135
+ configuration.show_feature_description_in_list = true
136
+ end
137
+ it { is_expected.to eq(true) }
138
+ end
139
+ end
105
140
  end
@@ -22,36 +22,6 @@ RSpec.describe Flipper::UI::Decorators::Feature do
22
22
  end
23
23
  end
24
24
 
25
- describe '#as_json' do
26
- before do
27
- @result = subject.as_json
28
- end
29
-
30
- it 'returns Hash' do
31
- expect(@result).to be_instance_of(Hash)
32
- end
33
-
34
- it 'includes id' do
35
- expect(@result['id']).to eq('some_awesome_feature')
36
- end
37
-
38
- it 'includes pretty name' do
39
- expect(@result['name']).to eq('Some Awesome Feature')
40
- end
41
-
42
- it 'includes state' do
43
- expect(@result['state']).to eq('off')
44
- end
45
-
46
- it 'includes gates' do
47
- gates = subject.gates.map do |gate|
48
- value = subject.gate_values[gate.key]
49
- Flipper::UI::Decorators::Gate.new(gate, value).as_json
50
- end
51
- expect(@result['gates']).to eq(gates)
52
- end
53
- end
54
-
55
25
  describe '#<=>' do
56
26
  let(:on) do
57
27
  flipper.enable(:on_a)
@@ -77,11 +47,11 @@ RSpec.describe Flipper::UI::Decorators::Feature do
77
47
  end
78
48
 
79
49
  it 'sorts :on before :off' do
80
- expect((on <=> conditional)).to be(-1)
50
+ expect((on <=> off)).to be(-1)
81
51
  end
82
52
 
83
53
  it 'sorts :conditional before :off' do
84
- expect((on <=> conditional)).to be(-1)
54
+ expect((conditional <=> off)).to be(-1)
85
55
  end
86
56
 
87
57
  it 'sorts on key for identical states' do
@@ -54,7 +54,7 @@ RSpec.describe Flipper::UI do
54
54
  # See https://github.com/jnunemaker/flipper/issues/80
55
55
  it 'can route features with names that match static directories' do
56
56
  post 'features/refactor-images/actors',
57
- { 'value' => 'User:6', 'operation' => 'enable', 'authenticity_token' => token },
57
+ { 'value' => 'User;6', 'operation' => 'enable', 'authenticity_token' => token },
58
58
  'rack.session' => session
59
59
  expect(last_response.status).to be(302)
60
60
  expect(last_response.headers['Location']).to eq('/features/refactor-images')
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.2
4
+ version: 0.19.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: 2019-04-20 00:00:00.000000000 Z
11
+ date: 2020-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 1.5.3
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: 2.1.0
42
+ version: 2.2.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,37 +49,42 @@ dependencies:
49
49
  version: 1.5.3
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: 2.1.0
52
+ version: 2.2.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: flipper
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 0.16.2
59
+ version: 0.19.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.2
66
+ version: 0.19.1
67
67
  - !ruby/object:Gem::Dependency
68
- name: erubis
68
+ name: erubi
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - "~>"
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.0.0
74
+ - - "<"
72
75
  - !ruby/object:Gem::Version
73
- version: 2.7.0
76
+ version: 2.0.0
74
77
  type: :runtime
75
78
  prerelease: false
76
79
  version_requirements: !ruby/object:Gem::Requirement
77
80
  requirements:
78
- - - "~>"
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.0.0
84
+ - - "<"
79
85
  - !ruby/object:Gem::Version
80
- version: 2.7.0
81
- description: Rack middleware that provides a fully featured web interface for the
82
- flipper gem.
86
+ version: 2.0.0
87
+ description:
83
88
  email:
84
89
  - nunemaker@gmail.com
85
90
  executables: []
@@ -87,8 +92,8 @@ extensions: []
87
92
  extra_rdoc_files: []
88
93
  files:
89
94
  - docs/ui/README.md
90
- - docs/ui/images/configured-ui.png
91
- - docs/ui/images/environment-banner.png
95
+ - docs/ui/images/banner.png
96
+ - docs/ui/images/description.png
92
97
  - docs/ui/images/feature.png
93
98
  - docs/ui/images/features.png
94
99
  - examples/ui/basic.ru
@@ -108,139 +113,23 @@ files:
108
113
  - lib/flipper/ui/actions/percentage_of_actors_gate.rb
109
114
  - lib/flipper/ui/actions/percentage_of_time_gate.rb
110
115
  - lib/flipper/ui/assets/javascripts/application.coffee
111
- - lib/flipper/ui/assets/stylesheets/.DS_Store
112
- - lib/flipper/ui/assets/stylesheets/application.scss
113
- - lib/flipper/ui/assets/stylesheets/bootstrap/_alert.scss
114
- - lib/flipper/ui/assets/stylesheets/bootstrap/_badge.scss
115
- - lib/flipper/ui/assets/stylesheets/bootstrap/_breadcrumb.scss
116
- - lib/flipper/ui/assets/stylesheets/bootstrap/_button-group.scss
117
- - lib/flipper/ui/assets/stylesheets/bootstrap/_buttons.scss
118
- - lib/flipper/ui/assets/stylesheets/bootstrap/_card.scss
119
- - lib/flipper/ui/assets/stylesheets/bootstrap/_carousel.scss
120
- - lib/flipper/ui/assets/stylesheets/bootstrap/_close.scss
121
- - lib/flipper/ui/assets/stylesheets/bootstrap/_code.scss
122
- - lib/flipper/ui/assets/stylesheets/bootstrap/_custom-forms.scss
123
- - lib/flipper/ui/assets/stylesheets/bootstrap/_dropdown.scss
124
- - lib/flipper/ui/assets/stylesheets/bootstrap/_forms.scss
125
- - lib/flipper/ui/assets/stylesheets/bootstrap/_functions.scss
126
- - lib/flipper/ui/assets/stylesheets/bootstrap/_grid.scss
127
- - lib/flipper/ui/assets/stylesheets/bootstrap/_images.scss
128
- - lib/flipper/ui/assets/stylesheets/bootstrap/_input-group.scss
129
- - lib/flipper/ui/assets/stylesheets/bootstrap/_jumbotron.scss
130
- - lib/flipper/ui/assets/stylesheets/bootstrap/_list-group.scss
131
- - lib/flipper/ui/assets/stylesheets/bootstrap/_media.scss
132
- - lib/flipper/ui/assets/stylesheets/bootstrap/_mixins.scss
133
- - lib/flipper/ui/assets/stylesheets/bootstrap/_modal.scss
134
- - lib/flipper/ui/assets/stylesheets/bootstrap/_nav.scss
135
- - lib/flipper/ui/assets/stylesheets/bootstrap/_navbar.scss
136
- - lib/flipper/ui/assets/stylesheets/bootstrap/_pagination.scss
137
- - lib/flipper/ui/assets/stylesheets/bootstrap/_popover.scss
138
- - lib/flipper/ui/assets/stylesheets/bootstrap/_print.scss
139
- - lib/flipper/ui/assets/stylesheets/bootstrap/_progress.scss
140
- - lib/flipper/ui/assets/stylesheets/bootstrap/_reboot.scss
141
- - lib/flipper/ui/assets/stylesheets/bootstrap/_root.scss
142
- - lib/flipper/ui/assets/stylesheets/bootstrap/_tables.scss
143
- - lib/flipper/ui/assets/stylesheets/bootstrap/_tooltip.scss
144
- - lib/flipper/ui/assets/stylesheets/bootstrap/_transitions.scss
145
- - lib/flipper/ui/assets/stylesheets/bootstrap/_type.scss
146
- - lib/flipper/ui/assets/stylesheets/bootstrap/_utilities.scss
147
- - lib/flipper/ui/assets/stylesheets/bootstrap/_variables.scss
148
- - lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-grid.scss
149
- - lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap-reboot.scss
150
- - lib/flipper/ui/assets/stylesheets/bootstrap/bootstrap.scss
151
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_alert.scss
152
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_background-variant.scss
153
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_badge.scss
154
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_border-radius.scss
155
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_box-shadow.scss
156
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_breakpoints.scss
157
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_buttons.scss
158
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_caret.scss
159
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_clearfix.scss
160
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_float.scss
161
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_forms.scss
162
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_gradients.scss
163
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid-framework.scss
164
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_grid.scss
165
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_hover.scss
166
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_image.scss
167
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_list-group.scss
168
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_lists.scss
169
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_nav-divider.scss
170
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_navbar-align.scss
171
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_pagination.scss
172
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_reset-text.scss
173
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_resize.scss
174
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_screen-reader.scss
175
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_size.scss
176
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_table-row.scss
177
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss
178
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-hide.scss
179
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_text-truncate.scss
180
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_transition.scss
181
- - lib/flipper/ui/assets/stylesheets/bootstrap/mixins/_visibility.scss
182
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_align.scss
183
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_background.scss
184
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_borders.scss
185
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_clearfix.scss
186
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_display.scss
187
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_embed.scss
188
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_flex.scss
189
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_float.scss
190
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_position.scss
191
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_screenreaders.scss
192
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_sizing.scss
193
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_spacing.scss
194
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_text.scss
195
- - lib/flipper/ui/assets/stylesheets/bootstrap/utilities/_visibility.scss
196
- - lib/flipper/ui/assets/stylesheets/primer/.scss-lint.yml
197
- - lib/flipper/ui/assets/stylesheets/primer/_alerts.scss
198
- - lib/flipper/ui/assets/stylesheets/primer/_avatars.scss
199
- - lib/flipper/ui/assets/stylesheets/primer/_base.scss
200
- - lib/flipper/ui/assets/stylesheets/primer/_blankslate.scss
201
- - lib/flipper/ui/assets/stylesheets/primer/_buttons.scss
202
- - lib/flipper/ui/assets/stylesheets/primer/_counter.scss
203
- - lib/flipper/ui/assets/stylesheets/primer/_filter-list.scss
204
- - lib/flipper/ui/assets/stylesheets/primer/_flex-table.scss
205
- - lib/flipper/ui/assets/stylesheets/primer/_forms.scss
206
- - lib/flipper/ui/assets/stylesheets/primer/_layout.scss
207
- - lib/flipper/ui/assets/stylesheets/primer/_menu.scss
208
- - lib/flipper/ui/assets/stylesheets/primer/_mixins.scss
209
- - lib/flipper/ui/assets/stylesheets/primer/_normalize.scss
210
- - lib/flipper/ui/assets/stylesheets/primer/_states.scss
211
- - lib/flipper/ui/assets/stylesheets/primer/_tabnav.scss
212
- - lib/flipper/ui/assets/stylesheets/primer/_tooltips.scss
213
- - lib/flipper/ui/assets/stylesheets/primer/_truncate.scss
214
- - lib/flipper/ui/assets/stylesheets/primer/_type.scss
215
- - lib/flipper/ui/assets/stylesheets/primer/_utility.scss
216
- - lib/flipper/ui/assets/stylesheets/primer/_variables.scss
217
- - lib/flipper/ui/assets/stylesheets/primer/primer.scss
218
116
  - lib/flipper/ui/configuration.rb
219
117
  - lib/flipper/ui/configuration/option.rb
220
118
  - lib/flipper/ui/decorators/feature.rb
221
119
  - lib/flipper/ui/decorators/gate.rb
222
120
  - lib/flipper/ui/error.rb
223
- - lib/flipper/ui/eruby.rb
224
121
  - lib/flipper/ui/middleware.rb
225
122
  - lib/flipper/ui/public/css/application.css
226
- - lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.eot
227
- - lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.svg
228
- - lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.ttf
229
- - lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff
230
- - lib/flipper/ui/public/fonts/bootstrap/glyphicons-halflings-regular.woff2
231
123
  - lib/flipper/ui/public/images/logo.png
232
- - lib/flipper/ui/public/images/remove.png
233
124
  - lib/flipper/ui/public/js/application.js
234
125
  - lib/flipper/ui/public/octicons/LICENSE.txt
235
126
  - lib/flipper/ui/public/octicons/README.md
236
127
  - lib/flipper/ui/public/octicons/octicons-local.ttf
237
128
  - lib/flipper/ui/public/octicons/octicons.css
238
129
  - lib/flipper/ui/public/octicons/octicons.eot
239
- - lib/flipper/ui/public/octicons/octicons.less
240
130
  - lib/flipper/ui/public/octicons/octicons.svg
241
131
  - lib/flipper/ui/public/octicons/octicons.ttf
242
132
  - lib/flipper/ui/public/octicons/octicons.woff
243
- - lib/flipper/ui/public/octicons/sprockets-octicons.scss
244
133
  - lib/flipper/ui/util.rb
245
134
  - lib/flipper/ui/views/add_actor.erb
246
135
  - lib/flipper/ui/views/add_feature.erb
@@ -287,8 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
176
  - !ruby/object:Gem::Version
288
177
  version: '0'
289
178
  requirements: []
290
- rubyforge_project:
291
- rubygems_version: 2.4.5.4
179
+ rubygems_version: 3.0.3
292
180
  signing_key:
293
181
  specification_version: 4
294
182
  summary: UI for the Flipper gem
@@ -1,19 +0,0 @@
1
- html {
2
- font-size: 0.8rem;
3
- }
4
- body {
5
- padding-top: 1.5em;
6
- padding-bottom: 1.5em;
7
- }
8
-
9
- $light: #ddd;
10
- @import "bootstrap/bootstrap";
11
-
12
- .flash {
13
- margin-bottom:15px;
14
- }
15
-
16
- .row + .row {
17
- margin-top: 1.5em;
18
- }
19
-