oxidized-web 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of oxidized-web might be problematic. Click here for more details.

Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.github/PULL_REQUEST_TEMPLATE.md +12 -0
  3. data/.github/dependabot.yml +25 -0
  4. data/.github/workflows/codeql.yml +76 -0
  5. data/.github/workflows/ruby.yml +42 -0
  6. data/.github/workflows/stale.yml +18 -0
  7. data/.gitignore +3 -0
  8. data/.rubocop.yml +38 -3
  9. data/.rubocop_todo.yml +28 -207
  10. data/CHANGELOG.md +28 -0
  11. data/README.md +8 -5
  12. data/Rakefile +48 -5
  13. data/docs/development.md +170 -0
  14. data/lib/oxidized/web/mig.rb +37 -47
  15. data/lib/oxidized/web/public/css/oxidized.css +59 -0
  16. data/lib/oxidized/web/public/scripts/oxidized.js +1 -12
  17. data/lib/oxidized/web/public/weblibs/bootstrap-icons.css +2078 -0
  18. data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js +6314 -0
  19. data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js.map +1 -0
  20. data/lib/oxidized/web/public/weblibs/bootstrap.css +12057 -0
  21. data/lib/oxidized/web/public/weblibs/bootstrap.css.map +1 -0
  22. data/lib/oxidized/web/public/weblibs/bootstrap.js +4494 -0
  23. data/lib/oxidized/web/public/weblibs/bootstrap.js.map +1 -0
  24. data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.css +398 -0
  25. data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.js +117 -0
  26. data/lib/oxidized/web/public/weblibs/buttons.colVis.js +256 -0
  27. data/lib/oxidized/web/public/weblibs/dataTables.bootstrap5.css +487 -0
  28. data/lib/oxidized/web/public/weblibs/dataTables.bootstrap5.js +147 -0
  29. data/lib/oxidized/web/public/weblibs/dataTables.buttons.js +2820 -0
  30. data/lib/oxidized/web/public/weblibs/dataTables.js +13171 -0
  31. data/lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff +0 -0
  32. data/lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff2 +0 -0
  33. data/lib/oxidized/web/public/weblibs/jquery.js +10716 -0
  34. data/lib/oxidized/web/version.rb +7 -0
  35. data/lib/oxidized/web/views/conf_search.haml +14 -13
  36. data/lib/oxidized/web/views/diffs.haml +5 -5
  37. data/lib/oxidized/web/views/footer.haml +5 -4
  38. data/lib/oxidized/web/views/head.haml +21 -7
  39. data/lib/oxidized/web/views/layout.haml +29 -34
  40. data/lib/oxidized/web/views/migration.haml +7 -0
  41. data/lib/oxidized/web/views/node.haml +10 -8
  42. data/lib/oxidized/web/views/nodes.haml +45 -35
  43. data/lib/oxidized/web/views/stats.haml +32 -24
  44. data/lib/oxidized/web/views/version.haml +8 -6
  45. data/lib/oxidized/web/views/versions.haml +23 -24
  46. data/lib/oxidized/web/webapp.rb +106 -87
  47. data/lib/oxidized/web.rb +10 -7
  48. data/oxidized-web.gemspec +27 -14
  49. data/package-lock.json +104 -0
  50. data/package.json +21 -0
  51. data/spec/node_spec.rb +143 -0
  52. data/spec/root_spec.rb +18 -0
  53. data/spec/spec_helper.rb +8 -0
  54. data/spec/webapp_spec.rb +28 -0
  55. metadata +187 -73
  56. data/lib/oxidized/web/public/css/bootstrap.min.css +0 -5
  57. data/lib/oxidized/web/public/css/buttons.bootstrap.min.css +0 -1
  58. data/lib/oxidized/web/public/css/dataTables.bootstrap.css +0 -299
  59. data/lib/oxidized/web/public/css/dataTables.colVis.css +0 -171
  60. data/lib/oxidized/web/public/css/oxidized_custom.css +0 -19
  61. data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.eot +0 -0
  62. data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.svg +0 -229
  63. data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  64. data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.woff +0 -0
  65. data/lib/oxidized/web/public/images/diff_15x17.png +0 -0
  66. data/lib/oxidized/web/public/images/sort_asc.png +0 -0
  67. data/lib/oxidized/web/public/images/sort_asc_disabled.png +0 -0
  68. data/lib/oxidized/web/public/images/sort_both.png +0 -0
  69. data/lib/oxidized/web/public/images/sort_desc.png +0 -0
  70. data/lib/oxidized/web/public/images/sort_desc_disabled.png +0 -0
  71. data/lib/oxidized/web/public/images/versioning_18px.png +0 -0
  72. data/lib/oxidized/web/public/scripts/bootstrap.min.js +0 -6
  73. data/lib/oxidized/web/public/scripts/dataTables.bootstrap.js +0 -186
  74. data/lib/oxidized/web/public/scripts/dataTables.colVis.js +0 -1123
  75. data/lib/oxidized/web/public/scripts/jquery-2.1.1.min.js +0 -4
  76. data/lib/oxidized/web/public/scripts/jquery.dataTables.min.js +0 -157
  77. data/lib/oxidized/web/public/scripts/jquery.min.js +0 -6
  78. data/lib/oxidized/web/views/sass/oxidized.sass +0 -113
data/spec/node_spec.rb ADDED
@@ -0,0 +1,143 @@
1
+ require_relative 'spec_helper'
2
+
3
+ describe Oxidized::API::WebApp do
4
+ include Rack::Test::Methods
5
+
6
+ def app
7
+ Oxidized::API::WebApp
8
+ end
9
+
10
+ before do
11
+ @nodes = mock('Oxidized::Nodes')
12
+ app.set(:nodes, @nodes)
13
+ end
14
+
15
+ describe '/node/fetch/' do
16
+ it 'gets the latest configuration of a node' do
17
+ @nodes.expects(:fetch).with('sw42', nil).returns('Configuration of sw42')
18
+
19
+ get '/node/fetch/sw42'
20
+ _(last_response.ok?).must_equal true
21
+ _(last_response.body).must_equal 'Configuration of sw42'
22
+ end
23
+
24
+ it 'gets the configuration of a node when a group is given' do
25
+ @nodes.expects(:fetch).with('sw42', 'mygroup').returns('Configuration of sw42')
26
+
27
+ get '/node/fetch/mygroup/sw42'
28
+ _(last_response.ok?).must_equal true
29
+ _(last_response.body).must_equal 'Configuration of sw42'
30
+ end
31
+
32
+ it 'gets the configuration of a node when a group contains /' do
33
+ @nodes.expects(:fetch).with('sw42', 'my/group').returns('Configuration of sw42')
34
+
35
+ get '/node/fetch/my/group/sw42'
36
+ _(last_response.ok?).must_equal true
37
+ _(last_response.body).must_equal 'Configuration of sw42'
38
+ end
39
+
40
+ it 'displays an error when the node is not found' do
41
+ @nodes.expects(:fetch).raises(Oxidized::NodeNotFound, 'unable to find \'sw12\'')
42
+
43
+ get '/node/fetch/sw12'
44
+ _(last_response.ok?).must_equal true
45
+ _(last_response.body).must_equal 'unable to find \'sw12\''
46
+ end
47
+ end
48
+
49
+ describe '/node/next/' do
50
+ it 'marks a node to be reloaded, then redirects to /nodes' do
51
+ # Don't know why the method has been called Nodes#next...
52
+ # This is for reloading the node configuration
53
+ @nodes.expects(:next).with('sw42')
54
+ get '/node/next/sw42'
55
+
56
+ _(last_response.redirect?).must_equal true
57
+ _(last_response.location).must_equal 'http://example.org/nodes'
58
+ end
59
+
60
+ it 'returns ok when requiring json' do
61
+ @nodes.expects(:next).with('sw42')
62
+ get '/node/next/sw42.json'
63
+
64
+ _(last_response.ok?).must_equal true
65
+ _(last_response.body).must_equal '["ok"]'
66
+ end
67
+
68
+ # Don't know if this feature is used by anyone...
69
+ it 'attaches author/email/message to the commit when using put and json' do
70
+ data = {
71
+ 'author' => 'me',
72
+ 'email' => 'me@example.com',
73
+ 'message' => 'minitest, rack/test & mock simply rock',
74
+ 'from' => 'unused variable!'
75
+ }
76
+ @nodes.expects(:next).with('sw42', data)
77
+
78
+ put '/node/next/sw42.json', data.to_json, "CONTENT_TYPE" => "application/json"
79
+
80
+ _(last_response.ok?).must_equal true
81
+ _(last_response.body).must_equal '["ok"]'
82
+ end
83
+
84
+ it 'attaches data to the commit when using a group and put, then redirects' do
85
+ data = {
86
+ 'author' => 'me',
87
+ 'email' => 'me@example.com',
88
+ 'message' => 'minitest, rack/test & mock simply rock',
89
+ 'from' => 'unused variable!'
90
+ }
91
+ @nodes.expects(:next).with('sw42', data)
92
+
93
+ put '/node/next/mygroup/sw42', data.to_json, "CONTENT_TYPE" => "application/json"
94
+
95
+ _(last_response.redirect?).must_equal true
96
+ _(last_response.location).must_equal 'http://example.org/nodes'
97
+ end
98
+ end
99
+
100
+ describe '/node/version/view.?:format?' do
101
+ it 'fetches a previous version from git' do
102
+ @nodes.expects(:get_version).with('sw5', '', 'c8aa93cab5').returns('Old configuration of sw42')
103
+
104
+ get '/node/version/view?node=sw5&group=&oid=c8aa93cab5&date=2024-06-07 08:27:37 +0200&num=2'
105
+ _(last_response.ok?).must_equal true
106
+ _(last_response.body.include?('Old configuration of sw42')).must_equal true
107
+ end
108
+
109
+ it 'does not display binary content' do
110
+ @nodes.expects(:get_version).with('sw5', '', 'c8aa93cab5').returns("\xff\x42 binary content\x00")
111
+
112
+ get '/node/version/view?node=sw5&group=&oid=c8aa93cab5&date=2024-06-07 08:27:37 +0200&num=2'
113
+ _(last_response.ok?).must_equal true
114
+ _(last_response.body.include?('cannot display')).must_equal true
115
+ end
116
+
117
+ it 'fetches a git-version when using a group containing /' do
118
+ @nodes.expects(:get_version).with('sw5', 'my/group', 'c8aa93cab5').returns('Old configuration of sw42')
119
+
120
+ get '/node/version/view?node=sw5&group=my/group&oid=c8aa93cab5&date=2024-06-07 08:27:37 +0200&num=2'
121
+ _(last_response.ok?).must_equal true
122
+ _(last_response.body.include?('Old configuration of sw42')).must_equal true
123
+ end
124
+
125
+ it 'does not encode html-chars in text-format' do
126
+ configuration = "text &/<> \n ascii;"
127
+ @nodes.expects(:get_version).with('sw5', '', 'c8aa93cab5').returns(configuration)
128
+ get '/node/version/view?node=sw5&group=&oid=c8aa93cab5&date=2024-06-07 08:27:37 +0200&num=2&format=text'
129
+
130
+ _(last_response.ok?).must_equal true
131
+ _(last_response.body).must_equal configuration
132
+ end
133
+
134
+ it 'does not encode html-chars in json-format' do
135
+ configuration = "text &/<> \n ascii;"
136
+ @nodes.expects(:get_version).with('sw5', '', 'c8aa93cab5').returns(configuration)
137
+ get '/node/version/view?node=sw5&group=&oid=c8aa93cab5&date=2024-06-07 08:27:37 +0200&num=2&format=json'
138
+
139
+ _(last_response.ok?).must_equal true
140
+ _(last_response.body).must_equal '["text &/<> \n"," ascii;"]'
141
+ end
142
+ end
143
+ end
data/spec/root_spec.rb ADDED
@@ -0,0 +1,18 @@
1
+ require_relative 'spec_helper'
2
+
3
+ describe Oxidized::API::WebApp do
4
+ include Rack::Test::Methods
5
+
6
+ def app
7
+ Oxidized::API::WebApp
8
+ end
9
+
10
+ describe '/' do
11
+ it 'should redirect to /nodes' do
12
+ get '/'
13
+
14
+ _(last_response.redirect?).must_equal true
15
+ _(last_response.location).must_equal 'http://example.org/nodes'
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ # Needed to get the error output on the console and not in last_response.body
2
+ ENV['APP_ENV'] = 'test'
3
+
4
+ require 'minitest/autorun'
5
+ require 'rack/test'
6
+ require 'oxidized'
7
+ require 'oxidized/web/webapp'
8
+ require 'mocha/minitest'
@@ -0,0 +1,28 @@
1
+ require_relative 'spec_helper'
2
+
3
+ # Test helper methods in Oxidized::API::WebApp
4
+
5
+ describe Oxidized::API::WebApp do
6
+ include Rack::Test::Methods
7
+
8
+ before do
9
+ @webapp = Oxidized::API::WebApp.new
10
+ end
11
+
12
+ describe 'convert_to_utf8' do
13
+ it 'cannot work with binary data' do
14
+ # private method => we must use send
15
+ result = @webapp.helpers.send(:convert_to_utf8, "\xff\x42 binary content\x00")
16
+ _(result).must_equal 'The text contains binary values - cannot display'
17
+ end
18
+ end
19
+
20
+ describe 'diff_view' do
21
+ it 'cannot work with binary data' do
22
+ # private method => we must use send
23
+ result = @webapp.helpers.send(:diff_view, "\xff\x42 binary content\x00")
24
+ _(result[:old_diff]).must_equal ['The text contains binary values - cannot display']
25
+ _(result[:new_diff]).must_equal ['The text contains binary values - cannot display']
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oxidized-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saku Ytti
8
8
  - Samer Abdel-Hafez
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-03-04 00:00:00.000000000 Z
12
+ date: 2024-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: charlock_holmes
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '5.0'
48
+ version: '6.0'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '5.0'
55
+ version: '6.0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: htmlentities
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -68,129 +68,149 @@ dependencies:
68
68
  - !ruby/object:Gem::Version
69
69
  version: '4.3'
70
70
  - !ruby/object:Gem::Dependency
71
- name: oxidized
71
+ name: json
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0.26'
76
+ version: '2.3'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0.26'
83
+ version: '2.3'
84
84
  - !ruby/object:Gem::Dependency
85
- name: puma
85
+ name: oxidized
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: 3.11.4
90
+ version: '0.26'
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: 3.11.4
97
+ version: '0.26'
98
98
  - !ruby/object:Gem::Dependency
99
- name: sass
99
+ name: puma
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - "~>"
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 3.11.4
105
+ - - "<"
103
106
  - !ruby/object:Gem::Version
104
- version: '3.3'
107
+ version: 6.5.0
105
108
  type: :runtime
106
109
  prerelease: false
107
110
  version_requirements: !ruby/object:Gem::Requirement
108
111
  requirements:
109
- - - "~>"
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 3.11.4
115
+ - - "<"
110
116
  - !ruby/object:Gem::Version
111
- version: '3.3'
117
+ version: 6.5.0
112
118
  - !ruby/object:Gem::Dependency
113
119
  name: sinatra
114
120
  requirement: !ruby/object:Gem::Requirement
115
121
  requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '1.4'
119
122
  - - ">="
120
123
  - !ruby/object:Gem::Version
121
124
  version: 1.4.6
125
+ - - "<"
126
+ - !ruby/object:Gem::Version
127
+ version: '5.0'
122
128
  type: :runtime
123
129
  prerelease: false
124
130
  version_requirements: !ruby/object:Gem::Requirement
125
131
  requirements:
126
- - - "~>"
127
- - !ruby/object:Gem::Version
128
- version: '1.4'
129
132
  - - ">="
130
133
  - !ruby/object:Gem::Version
131
134
  version: 1.4.6
135
+ - - "<"
136
+ - !ruby/object:Gem::Version
137
+ version: '5.0'
132
138
  - !ruby/object:Gem::Dependency
133
139
  name: sinatra-contrib
134
140
  requirement: !ruby/object:Gem::Requirement
135
141
  requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '1.4'
139
142
  - - ">="
140
143
  - !ruby/object:Gem::Version
141
144
  version: 1.4.6
145
+ - - "<"
146
+ - !ruby/object:Gem::Version
147
+ version: '5.0'
142
148
  type: :runtime
143
149
  prerelease: false
144
150
  version_requirements: !ruby/object:Gem::Requirement
145
151
  requirements:
146
- - - "~>"
147
- - !ruby/object:Gem::Version
148
- version: '1.4'
149
152
  - - ">="
150
153
  - !ruby/object:Gem::Version
151
154
  version: 1.4.6
155
+ - - "<"
156
+ - !ruby/object:Gem::Version
157
+ version: '5.0'
152
158
  - !ruby/object:Gem::Dependency
153
- name: json
159
+ name: bundler
154
160
  requirement: !ruby/object:Gem::Requirement
155
161
  requirements:
156
- - - ">="
162
+ - - "~>"
157
163
  - !ruby/object:Gem::Version
158
- version: 1.7.0
159
- type: :runtime
164
+ version: '2.2'
165
+ type: :development
160
166
  prerelease: false
161
167
  version_requirements: !ruby/object:Gem::Requirement
162
168
  requirements:
163
- - - ">="
169
+ - - "~>"
164
170
  - !ruby/object:Gem::Version
165
- version: 1.7.0
171
+ version: '2.2'
166
172
  - !ruby/object:Gem::Dependency
167
- name: rack-test
173
+ name: minitest
168
174
  requirement: !ruby/object:Gem::Requirement
169
175
  requirements:
170
176
  - - "~>"
171
177
  - !ruby/object:Gem::Version
172
- version: 0.7.0
173
- type: :runtime
178
+ version: '5.18'
179
+ type: :development
174
180
  prerelease: false
175
181
  version_requirements: !ruby/object:Gem::Requirement
176
182
  requirements:
177
183
  - - "~>"
178
184
  - !ruby/object:Gem::Version
179
- version: 0.7.0
185
+ version: '5.18'
180
186
  - !ruby/object:Gem::Dependency
181
- name: bundler
187
+ name: mocha
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: '2.1'
193
+ type: :development
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '2.1'
200
+ - !ruby/object:Gem::Dependency
201
+ name: rack-test
182
202
  requirement: !ruby/object:Gem::Requirement
183
203
  requirements:
184
204
  - - "~>"
185
205
  - !ruby/object:Gem::Version
186
- version: '2.0'
206
+ version: '2.1'
187
207
  type: :development
188
208
  prerelease: false
189
209
  version_requirements: !ruby/object:Gem::Requirement
190
210
  requirements:
191
211
  - - "~>"
192
212
  - !ruby/object:Gem::Version
193
- version: '2.0'
213
+ version: '2.1'
194
214
  - !ruby/object:Gem::Dependency
195
215
  name: rails_best_practices
196
216
  requirement: !ruby/object:Gem::Requirement
@@ -211,28 +231,112 @@ dependencies:
211
231
  requirements:
212
232
  - - "~>"
213
233
  - !ruby/object:Gem::Version
214
- version: '10.0'
234
+ version: '13.0'
215
235
  type: :development
216
236
  prerelease: false
217
237
  version_requirements: !ruby/object:Gem::Requirement
218
238
  requirements:
219
239
  - - "~>"
220
240
  - !ruby/object:Gem::Version
221
- version: '10.0'
241
+ version: '13.0'
222
242
  - !ruby/object:Gem::Dependency
223
243
  name: rubocop
224
244
  requirement: !ruby/object:Gem::Requirement
225
245
  requirements:
226
246
  - - "~>"
227
247
  - !ruby/object:Gem::Version
228
- version: 0.65.0
248
+ version: 1.64.1
249
+ type: :development
250
+ prerelease: false
251
+ version_requirements: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: 1.64.1
256
+ - !ruby/object:Gem::Dependency
257
+ name: rubocop-minitest
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - "~>"
261
+ - !ruby/object:Gem::Version
262
+ version: 0.35.0
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: 0.35.0
270
+ - !ruby/object:Gem::Dependency
271
+ name: rubocop-rails
272
+ requirement: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: 2.25.0
277
+ type: :development
278
+ prerelease: false
279
+ version_requirements: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - "~>"
282
+ - !ruby/object:Gem::Version
283
+ version: 2.25.0
284
+ - !ruby/object:Gem::Dependency
285
+ name: rubocop-rake
286
+ requirement: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - "~>"
289
+ - !ruby/object:Gem::Version
290
+ version: 0.6.0
291
+ type: :development
292
+ prerelease: false
293
+ version_requirements: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - "~>"
296
+ - !ruby/object:Gem::Version
297
+ version: 0.6.0
298
+ - !ruby/object:Gem::Dependency
299
+ name: simplecov
300
+ requirement: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: 0.22.0
305
+ type: :development
306
+ prerelease: false
307
+ version_requirements: !ruby/object:Gem::Requirement
308
+ requirements:
309
+ - - "~>"
310
+ - !ruby/object:Gem::Version
311
+ version: 0.22.0
312
+ - !ruby/object:Gem::Dependency
313
+ name: simplecov-cobertura
314
+ requirement: !ruby/object:Gem::Requirement
315
+ requirements:
316
+ - - "~>"
317
+ - !ruby/object:Gem::Version
318
+ version: 2.1.0
319
+ type: :development
320
+ prerelease: false
321
+ version_requirements: !ruby/object:Gem::Requirement
322
+ requirements:
323
+ - - "~>"
324
+ - !ruby/object:Gem::Version
325
+ version: 2.1.0
326
+ - !ruby/object:Gem::Dependency
327
+ name: simplecov-html
328
+ requirement: !ruby/object:Gem::Requirement
329
+ requirements:
330
+ - - "~>"
331
+ - !ruby/object:Gem::Version
332
+ version: 0.12.3
229
333
  type: :development
230
334
  prerelease: false
231
335
  version_requirements: !ruby/object:Gem::Requirement
232
336
  requirements:
233
337
  - - "~>"
234
338
  - !ruby/object:Gem::Version
235
- version: 0.65.0
339
+ version: 0.12.3
236
340
  description: puma+sinatra+haml webUI + REST API for oxidized
237
341
  email:
238
342
  - saku@ytti.fi
@@ -242,42 +346,46 @@ extensions: []
242
346
  extra_rdoc_files: []
243
347
  files:
244
348
  - ".codeclimate.yml"
349
+ - ".github/PULL_REQUEST_TEMPLATE.md"
350
+ - ".github/dependabot.yml"
351
+ - ".github/workflows/codeql.yml"
352
+ - ".github/workflows/ruby.yml"
353
+ - ".github/workflows/stale.yml"
245
354
  - ".gitignore"
246
355
  - ".rubocop.yml"
247
356
  - ".rubocop_todo.yml"
248
357
  - ".travis.yml"
358
+ - CHANGELOG.md
249
359
  - Gemfile
250
360
  - README.md
251
361
  - Rakefile
362
+ - docs/development.md
252
363
  - lib/oxidized/web.rb
253
364
  - lib/oxidized/web/mig.rb
254
- - lib/oxidized/web/public/css/bootstrap.min.css
255
- - lib/oxidized/web/public/css/buttons.bootstrap.min.css
256
- - lib/oxidized/web/public/css/dataTables.bootstrap.css
257
- - lib/oxidized/web/public/css/dataTables.colVis.css
258
- - lib/oxidized/web/public/css/oxidized_custom.css
259
- - lib/oxidized/web/public/fonts/glyphicons-halflings-regular.eot
260
- - lib/oxidized/web/public/fonts/glyphicons-halflings-regular.svg
261
- - lib/oxidized/web/public/fonts/glyphicons-halflings-regular.ttf
262
- - lib/oxidized/web/public/fonts/glyphicons-halflings-regular.woff
263
- - lib/oxidized/web/public/images/diff_15x17.png
365
+ - lib/oxidized/web/public/css/oxidized.css
264
366
  - lib/oxidized/web/public/images/favicon.ico
265
367
  - lib/oxidized/web/public/images/oxidizing.png
266
368
  - lib/oxidized/web/public/images/oxidizing_40px.png
267
- - lib/oxidized/web/public/images/sort_asc.png
268
- - lib/oxidized/web/public/images/sort_asc_disabled.png
269
- - lib/oxidized/web/public/images/sort_both.png
270
- - lib/oxidized/web/public/images/sort_desc.png
271
- - lib/oxidized/web/public/images/sort_desc_disabled.png
272
- - lib/oxidized/web/public/images/versioning_18px.png
273
- - lib/oxidized/web/public/scripts/bootstrap.min.js
274
- - lib/oxidized/web/public/scripts/dataTables.bootstrap.js
275
- - lib/oxidized/web/public/scripts/dataTables.colVis.js
276
- - lib/oxidized/web/public/scripts/jquery-2.1.1.min.js
277
- - lib/oxidized/web/public/scripts/jquery.dataTables.min.js
278
- - lib/oxidized/web/public/scripts/jquery.min.js
279
369
  - lib/oxidized/web/public/scripts/oxidized.js
280
370
  - lib/oxidized/web/public/scripts/script-migration.js
371
+ - lib/oxidized/web/public/weblibs/bootstrap-icons.css
372
+ - lib/oxidized/web/public/weblibs/bootstrap.bundle.js
373
+ - lib/oxidized/web/public/weblibs/bootstrap.bundle.js.map
374
+ - lib/oxidized/web/public/weblibs/bootstrap.css
375
+ - lib/oxidized/web/public/weblibs/bootstrap.css.map
376
+ - lib/oxidized/web/public/weblibs/bootstrap.js
377
+ - lib/oxidized/web/public/weblibs/bootstrap.js.map
378
+ - lib/oxidized/web/public/weblibs/buttons.bootstrap5.css
379
+ - lib/oxidized/web/public/weblibs/buttons.bootstrap5.js
380
+ - lib/oxidized/web/public/weblibs/buttons.colVis.js
381
+ - lib/oxidized/web/public/weblibs/dataTables.bootstrap5.css
382
+ - lib/oxidized/web/public/weblibs/dataTables.bootstrap5.js
383
+ - lib/oxidized/web/public/weblibs/dataTables.buttons.js
384
+ - lib/oxidized/web/public/weblibs/dataTables.js
385
+ - lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff
386
+ - lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff2
387
+ - lib/oxidized/web/public/weblibs/jquery.js
388
+ - lib/oxidized/web/version.rb
281
389
  - lib/oxidized/web/views/conf_search.haml
282
390
  - lib/oxidized/web/views/diffs.haml
283
391
  - lib/oxidized/web/views/footer.haml
@@ -286,17 +394,23 @@ files:
286
394
  - lib/oxidized/web/views/migration.haml
287
395
  - lib/oxidized/web/views/node.haml
288
396
  - lib/oxidized/web/views/nodes.haml
289
- - lib/oxidized/web/views/sass/oxidized.sass
290
397
  - lib/oxidized/web/views/stats.haml
291
398
  - lib/oxidized/web/views/version.haml
292
399
  - lib/oxidized/web/views/versions.haml
293
400
  - lib/oxidized/web/webapp.rb
294
401
  - oxidized-web.gemspec
402
+ - package-lock.json
403
+ - package.json
404
+ - spec/node_spec.rb
405
+ - spec/root_spec.rb
406
+ - spec/spec_helper.rb
407
+ - spec/webapp_spec.rb
295
408
  homepage: http://github.com/ytti/oxidized-web
296
409
  licenses:
297
410
  - Apache-2.0
298
- metadata: {}
299
- post_install_message:
411
+ metadata:
412
+ rubygems_mfa_required: 'true'
413
+ post_install_message:
300
414
  rdoc_options: []
301
415
  require_paths:
302
416
  - lib
@@ -304,15 +418,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
304
418
  requirements:
305
419
  - - ">="
306
420
  - !ruby/object:Gem::Version
307
- version: '2.3'
421
+ version: '3.1'
308
422
  required_rubygems_version: !ruby/object:Gem::Requirement
309
423
  requirements:
310
424
  - - ">="
311
425
  - !ruby/object:Gem::Version
312
426
  version: '0'
313
427
  requirements: []
314
- rubygems_version: 3.0.2
315
- signing_key:
428
+ rubygems_version: 3.3.15
429
+ signing_key:
316
430
  specification_version: 4
317
431
  summary: sinatra API + webUI for oxidized
318
432
  test_files: []