oxidized-web 0.13.1 → 0.14.0

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.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a0d392d1d8dc6166e75fd562f853c8119ceb9b2fb370a754d0b60acacc0de20
4
- data.tar.gz: 7f6a971a151cb06ce0044647b5cb101b95f3563e93539ff9d63a5bee2d73552f
3
+ metadata.gz: fd7aba682137b4460c7f9f76ad8991416d3358c58a01c639b3c5457bac5ec2c0
4
+ data.tar.gz: '091d541900d22a286cd735eb41d13d34efeb49be06a2f5fb69a196740fa08935'
5
5
  SHA512:
6
- metadata.gz: e0e38327ab5c7e92e071d0baad334ea5b0dd8f0cff995dd11c8d7ba3133f5091b931c3df9a64b7970613792c2f65387a498318cf81fa11a83cefb4237b57193a
7
- data.tar.gz: 150d902906c3f603eb0dbeeb6e42833c9287f6a6334e651042350cf95cb75c13ecd8aec3d436d80b1775b214072092401ebd5443ea6d945c28a760ed99f22f5d
6
+ metadata.gz: 674f0040daf698447e7ad52f60a83cbceb60f1580b9abcca9328509f513c08728f0e906b8636d151e95c11c0d5294922b1bc2431c4be6ea438e66c47f64000e2
7
+ data.tar.gz: 892d8416013ab3ff0ca4123725cae2e4ebdf78750cf9b10356a386a1ee952e18cdfcc2238c86bfd9626d40ff99436c8b195c31d28aaada97d686f59ba3adffec
@@ -0,0 +1,12 @@
1
+ ## Pre-Request Checklist
2
+ <!-- Not all items apply to each PR, but a great PR addresses all applicable items. -->
3
+
4
+ - [ ] Passes rubocop code analysis (try `rubocop --auto-correct`)
5
+ - [ ] Tests added or adapted (try `rake test`)
6
+ - [ ] Changes are reflected in the documentation
7
+ - [ ] User-visible changes appended to [CHANGELOG.md](/CHANGELOG.md)
8
+
9
+ ## Description
10
+ <!-- Describe your changes here. -->
11
+
12
+ <!-- Add a text similar to "Closes issue #" if this PR relates to an existing issue. -->
@@ -0,0 +1,25 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "github-actions"
9
+ target-branch: "master"
10
+ directory: "/"
11
+ schedule:
12
+ interval: "daily"
13
+ open-pull-requests-limit: 10
14
+ - package-ecosystem: "bundler"
15
+ target-branch: "master"
16
+ directory: "/"
17
+ schedule:
18
+ interval: "daily"
19
+ open-pull-requests-limit: 10
20
+ - package-ecosystem: "npm"
21
+ target-branch: "master"
22
+ directory: "/"
23
+ schedule:
24
+ interval: "daily"
25
+ open-pull-requests-limit: 10
@@ -0,0 +1,76 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ "master" ]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [ "master" ]
20
+ schedule:
21
+ - cron: '44 21 * * 0'
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: [ 'ruby' ]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Use only 'java' to analyze code written in Java, Kotlin or both
38
+ # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
39
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
40
+
41
+ steps:
42
+ - name: Checkout repository
43
+ uses: actions/checkout@v4
44
+
45
+ # Initializes the CodeQL tools for scanning.
46
+ - name: Initialize CodeQL
47
+ uses: github/codeql-action/init@v3
48
+ with:
49
+ languages: ${{ matrix.language }}
50
+ # If you wish to specify custom queries, you can do so here or in a config file.
51
+ # By default, queries listed here will override any specified in a config file.
52
+ # Prefix the list here with "+" to use these queries and those in the config file.
53
+
54
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
55
+ # queries: security-extended,security-and-quality
56
+
57
+
58
+ # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
59
+ # If this step fails, then you should remove it and run the build manually (see below)
60
+ - name: Autobuild
61
+ uses: github/codeql-action/autobuild@v3
62
+
63
+ # ℹ️ Command-line programs to run using the OS shell.
64
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
65
+
66
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
67
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
68
+
69
+ # - run: |
70
+ # echo "Run, Build Application using script"
71
+ # ./location_of_script_within_repo/buildscript.sh
72
+
73
+ - name: Perform CodeQL Analysis
74
+ uses: github/codeql-action/analyze@v3
75
+ with:
76
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,42 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: CI
9
+
10
+ on: [ push, pull_request ]
11
+ # push:
12
+ # branches: [ master ]
13
+ # pull_request:
14
+ # branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['3.1', '3.2', '3.3']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby-version }}
32
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
33
+ - name: rubocop
34
+ uses: reviewdog/action-rubocop@v2
35
+ with:
36
+ rubocop_version: gemfile
37
+ rubocop_extensions: rubocop-minitest:gemfile rubocop-rake:gemfile rubocop-rails:gemfile
38
+ reporter: github-pr-review
39
+ - name: Run tests
40
+ run: bundle exec rake
41
+ - uses: codecov/codecov-action@v4
42
+ if: ${{ always() }}
@@ -0,0 +1,18 @@
1
+ name: "Stale Issue/PR cleanup"
2
+ on:
3
+ schedule:
4
+ - cron: "30 1 * * *"
5
+
6
+ permissions:
7
+ issues: write
8
+ pull-requests: write
9
+
10
+ jobs:
11
+ stale:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/stale@v9
15
+ with:
16
+ operations-per-run: 500
17
+ days-before-issue-stale: 90
18
+ days-before-close: 30
data/.gitignore CHANGED
@@ -49,3 +49,6 @@ Gemfile.lock
49
49
 
50
50
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
51
51
  .rvmrc
52
+
53
+ # npm files
54
+ /node_modules/
data/.rubocop.yml CHANGED
@@ -1,20 +1,43 @@
1
1
  inherit_from: .rubocop_todo.yml
2
+ require:
3
+ - rubocop-rails
4
+ - rubocop-rake
5
+ - rubocop-minitest
2
6
 
3
7
  # Do not attempt to police vendored code, and exclude special cases
4
8
  AllCops:
5
- TargetRubyVersion: 2.3
9
+ NewCops: enable
10
+ TargetRubyVersion: 3.1
6
11
  Exclude:
7
12
  - 'vendor/**/*'
8
13
 
9
- StringLiterals:
14
+ Gemspec/DevelopmentDependencies:
15
+ EnforcedStyle: gemspec
16
+
17
+ Metrics/ClassLength:
18
+ Max: 300
19
+
20
+ Metrics/BlockLength:
21
+ Max: 150
22
+
23
+ Style/Documentation:
24
+ Enabled: false
25
+
26
+ Style/StringLiterals:
10
27
  Enabled: false
11
28
 
12
29
  Style/FrozenStringLiteralComment:
13
30
  Enabled: false
14
31
 
15
- LineLength:
32
+ Layout/LineLength:
16
33
  Enabled: false
17
34
 
35
+ Lint/RaiseException:
36
+ Enabled: true
37
+
38
+ Lint/StructNewOverride:
39
+ Enabled: true
40
+
18
41
  # Stick to verbose until https://bugs.ruby-lang.org/issues/10177 is closed.
19
42
  Style/PreferredHashMethods:
20
43
  EnforcedStyle: verbose
@@ -32,6 +55,18 @@ Style/FormatString:
32
55
  Style/FormatStringToken:
33
56
  EnforcedStyle: unannotated
34
57
 
58
+ Style/HashEachMethods:
59
+ Enabled: true
60
+
61
+ Style/HashTransformKeys:
62
+ Enabled: true
63
+
64
+ Style/HashTransformValues:
65
+ Enabled: true
66
+
67
+ Style/HashSyntax:
68
+ EnforcedShorthandSyntax: either
69
+
35
70
  Style/RescueModifier:
36
71
  Enabled: false
37
72
 
data/.rubocop_todo.yml CHANGED
@@ -1,248 +1,69 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2019-03-03 09:40:37 +0100 using RuboCop version 0.65.0.
3
+ # on 2024-06-28 07:42:20 UTC using RuboCop version 1.64.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 1
10
- # Cop supports --auto-correct.
11
- # Configuration parameters: TreatCommentsAsGroupSeparators, Include.
12
- # Include: **/*.gemspec
13
- Gemspec/OrderedDependencies:
14
- Exclude:
15
- - 'oxidized-web.gemspec'
16
-
17
- # Offense count: 2
18
- # Cop supports --auto-correct.
19
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
20
- # SupportedStyles: space, no_space, compact
21
- # SupportedStylesForEmptyBraces: space, no_space
22
- Layout/SpaceInsideHashLiteralBraces:
23
- Exclude:
24
- - 'lib/oxidized/web/webapp.rb'
25
-
26
- # Offense count: 1
27
- # Cop supports --auto-correct.
28
- # Configuration parameters: AllowInHeredoc.
29
- Layout/TrailingWhitespace:
30
- Exclude:
31
- - 'lib/oxidized/web/mig.rb'
32
-
33
- # Offense count: 1
34
- Lint/AmbiguousBlockAssociation:
35
- Exclude:
36
- - 'lib/oxidized/web/webapp.rb'
37
-
38
- # Offense count: 1
39
- # Configuration parameters: AllowSafeAssignment.
40
- Lint/AssignmentInCondition:
41
- Exclude:
42
- - 'lib/oxidized/web/mig.rb'
43
-
44
- # Offense count: 1
45
- Lint/HandleExceptions:
46
- Exclude:
47
- - 'lib/oxidized/web/webapp.rb'
48
-
49
- # Offense count: 7
9
+ # Offense count: 5
10
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
50
11
  Metrics/AbcSize:
51
- Max: 47
52
-
53
- # Offense count: 2
54
- # Configuration parameters: CountComments, ExcludedMethods.
55
- # ExcludedMethods: refine
56
- Metrics/BlockLength:
57
- Max: 33
12
+ Max: 52
58
13
 
59
14
  # Offense count: 1
60
15
  # Configuration parameters: CountBlocks.
61
16
  Metrics/BlockNesting:
62
- Max: 5
63
-
64
- # Offense count: 2
65
- # Configuration parameters: CountComments.
66
- Metrics/ClassLength:
67
- Max: 272
17
+ Max: 4
68
18
 
69
19
  # Offense count: 2
20
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
70
21
  Metrics/CyclomaticComplexity:
71
22
  Max: 9
72
23
 
73
24
  # Offense count: 9
74
- # Configuration parameters: CountComments, ExcludedMethods.
25
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
75
26
  Metrics/MethodLength:
76
- Max: 36
27
+ Max: 33
77
28
 
78
- # Offense count: 3
29
+ # Offense count: 2
30
+ # Configuration parameters: AllowedMethods, AllowedPatterns.
79
31
  Metrics/PerceivedComplexity:
80
32
  Max: 11
81
33
 
82
- # Offense count: 5
83
- # Cop supports --auto-correct.
84
- Performance/RedundantMatch:
85
- Exclude:
86
- - 'lib/oxidized/web/mig.rb'
87
- - 'lib/oxidized/web/webapp.rb'
88
-
89
- # Offense count: 2
90
- # Cop supports --auto-correct.
91
- Performance/StringReplacement:
92
- Exclude:
93
- - 'lib/oxidized/web/mig.rb'
94
-
95
34
  # Offense count: 1
96
- Security/Eval:
35
+ # Configuration parameters: Include.
36
+ # Include: app/**/*.rb, config/**/*.rb, lib/**/*.rb
37
+ Rails/Exit:
97
38
  Exclude:
98
- - 'Rakefile'
99
-
100
- # Offense count: 1
101
- # Cop supports --auto-correct.
102
- # Configuration parameters: AutoCorrect.
103
- Security/JSONLoad:
104
- Exclude:
105
- - 'lib/oxidized/web/webapp.rb'
106
-
107
- # Offense count: 2
108
- # Cop supports --auto-correct.
109
- # Configuration parameters: EnforcedStyle.
110
- # SupportedStyles: always, conditionals
111
- Style/AndOr:
112
- Exclude:
113
- - 'lib/oxidized/web/webapp.rb'
114
-
115
- # Offense count: 2
116
- # Cop supports --auto-correct.
117
- # Configuration parameters: EnforcedStyle.
118
- # SupportedStyles: braces, no_braces, context_dependent
119
- Style/BracesAroundHashParameters:
120
- Exclude:
121
- - 'lib/oxidized/web/webapp.rb'
122
-
123
- # Offense count: 2
124
- # Cop supports --auto-correct.
125
- # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
126
- # SupportedStyles: assign_to_condition, assign_inside_condition
127
- Style/ConditionalAssignment:
128
- Exclude:
129
- - 'lib/oxidized/web/webapp.rb'
130
-
131
- # Offense count: 3
132
- Style/Documentation:
133
- Exclude:
134
- - 'spec/**/*'
135
- - 'test/**/*'
136
39
  - 'lib/oxidized/web.rb'
137
- - 'lib/oxidized/web/mig.rb'
138
- - 'lib/oxidized/web/webapp.rb'
139
-
140
- # Offense count: 1
141
- # Cop supports --auto-correct.
142
- Style/EmptyLiteral:
143
- Exclude:
144
- - 'lib/oxidized/web/webapp.rb'
145
40
 
146
- # Offense count: 2
147
- # Cop supports --auto-correct.
148
- # Configuration parameters: EnforcedStyle.
149
- # SupportedStyles: each, for
150
- Style/For:
151
- Exclude:
152
- - 'lib/oxidized/web/mig.rb'
153
- - 'lib/oxidized/web/webapp.rb'
154
-
155
- # Offense count: 1
156
- # Cop supports --auto-correct.
157
- # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
158
- # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
159
- Style/HashSyntax:
41
+ # Offense count: 7
42
+ # This cop supports unsafe autocorrection (--autocorrect-all).
43
+ # Configuration parameters: Include.
44
+ # Include: **/Rakefile, **/*.rake
45
+ Rails/RakeEnvironment:
160
46
  Exclude:
161
47
  - 'Rakefile'
162
48
 
163
- # Offense count: 9
164
- # Cop supports --auto-correct.
165
- Style/IfUnlessModifier:
166
- Exclude:
167
- - 'lib/oxidized/web/mig.rb'
168
- - 'lib/oxidized/web/webapp.rb'
169
-
170
- # Offense count: 10
171
- # Cop supports --auto-correct.
172
- # Configuration parameters: EnforcedStyle.
173
- # SupportedStyles: require_parentheses, require_no_parentheses, require_no_parentheses_except_multiline
174
- Style/MethodDefParentheses:
175
- Exclude:
176
- - 'lib/oxidized/web.rb'
177
- - 'lib/oxidized/web/mig.rb'
178
- - 'lib/oxidized/web/webapp.rb'
179
-
180
49
  # Offense count: 1
181
- # Cop supports --auto-correct.
182
- # Configuration parameters: EnforcedStyle.
183
- # SupportedStyles: both, prefix, postfix
184
- Style/NegatedIf:
185
- Exclude:
186
- - 'lib/oxidized/web.rb'
187
-
188
- # Offense count: 4
189
- # Cop supports --auto-correct.
190
- # Configuration parameters: EnforcedStyle, MinBodyLength.
191
- # SupportedStyles: skip_modifier_ifs, always
192
- Style/Next:
50
+ # This cop supports safe autocorrection (--autocorrect).
51
+ Rake/Desc:
193
52
  Exclude:
194
- - 'lib/oxidized/web/mig.rb'
195
- - 'lib/oxidized/web/webapp.rb'
196
-
197
- # Offense count: 1
198
- # Cop supports --auto-correct.
199
- # Configuration parameters: IncludeSemanticChanges.
200
- Style/NonNilCheck:
201
- Exclude:
202
- - 'lib/oxidized/web/webapp.rb'
203
-
204
- # Offense count: 1
205
- # Cop supports --auto-correct.
206
- Style/ParallelAssignment:
207
- Exclude:
208
- - 'lib/oxidized/web.rb'
209
-
210
- # Offense count: 1
211
- # Cop supports --auto-correct.
212
- Style/Proc:
213
- Exclude:
214
- - 'lib/oxidized/web/webapp.rb'
215
-
216
- # Offense count: 4
217
- # Cop supports --auto-correct.
218
- Style/RedundantParentheses:
219
- Exclude:
220
- - 'lib/oxidized/web/webapp.rb'
53
+ - 'Rakefile'
221
54
 
222
- # Offense count: 1
223
- # Cop supports --auto-correct.
224
- Style/SelfAssignment:
55
+ # Offense count: 2
56
+ Rake/DuplicateTask:
225
57
  Exclude:
226
- - 'lib/oxidized/web/webapp.rb'
58
+ - 'Rakefile'
227
59
 
228
60
  # Offense count: 1
229
- # Cop supports --auto-correct.
230
- # Configuration parameters: EnforcedStyleForMultiline.
231
- # SupportedStylesForMultiline: comma, consistent_comma, no_comma
232
- Style/TrailingCommaInHashLiteral:
61
+ Security/Eval:
233
62
  Exclude:
234
- - 'lib/oxidized/web.rb'
63
+ - 'Rakefile'
235
64
 
236
65
  # Offense count: 1
237
- # Cop supports --auto-correct.
238
- Style/WhileUntilDo:
66
+ # This cop supports unsafe autocorrection (--autocorrect-all).
67
+ Security/JSONLoad:
239
68
  Exclude:
240
69
  - 'lib/oxidized/web/webapp.rb'
241
-
242
- # Offense count: 1
243
- # Cop supports --auto-correct.
244
- # Configuration parameters: WordRegex.
245
- # SupportedStyles: percent, brackets
246
- Style/WordArray:
247
- EnforcedStyle: percent
248
- MinSize: 3
data/CHANGELOG.md ADDED
@@ -0,0 +1,28 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
+
7
+ ## [0.14.0 - 2024-06-28]
8
+
9
+ ### Added
10
+ - CHANGELOG.md created (@robertchreamy)
11
+ - First minitest: get / (@robertchreamy)
12
+ - docs/development.md created (@robertchreamy)
13
+ - weblibs are maintained with npm (@robertchreamy)
14
+ - display Oxidized-web version in the footer (@robertcheramy)
15
+
16
+ ### Changed
17
+ - gem dependencies updated (@robertchreamy)
18
+ - support for ruby 3.0 dropped (@robertchreamy)
19
+ - #215: weblibs (jQuery, bootstrap, datatables.net) updated (@robertchreamy)
20
+ - the web design follows where possible bootstrap without specific css (@robertchreamy)
21
+ - deprecating the RANCID migration page (@robertchreamy)
22
+
23
+ ### Fixed
24
+ - #232: escape_once not supported in haml 6.0 (@robertchreamy)
25
+ - #253: deprecated sass dependency dropped (@robertchreamy)
26
+ - rubocop warnings fixed (@robertchreamy)
27
+ - #234: removed link to not working live demo (@robertchreamy)
28
+ - group name containing a '/' producing a Sinatra error (@robertcheramy)
data/README.md CHANGED
@@ -1,17 +1,20 @@
1
- # Oxidized Web [![Build Status](https://travis-ci.com/ytti/oxidized-web.svg)](https://travis-ci.com/ytti/oxidized-web) [![Gem Version](https://badge.fury.io/rb/oxidized-web.svg)](http://badge.fury.io/rb/oxidized-web)
1
+ # Oxidized Web
2
+
3
+ [![Build Status](https://github.com/ytti/oxidized-web/actions/workflows/ruby.yml/badge.svg)](https://github.com/ytti/oxidized-web/actions/workflows/ruby.yml)
4
+ [![Gem Version](https://badge.fury.io/rb/oxidized-web.svg)](http://badge.fury.io/rb/oxidized-web)
2
5
 
3
6
  Web userinterface and RESTful API for Oxidized.
4
7
 
5
- This is not useful independently, see https://github.com/ytti/oxidized for install instructions
8
+ This is not useful independently, see https://github.com/ytti/oxidized for install instructions.
6
9
 
7
- Live demo: http://oxidized.arahant.net
10
+ If you wonder how to run oxidized-web from git for development, have a look at
11
+ [docs/development.md](docs/development.md).
8
12
 
9
- # License and Copyright
13
+ ## License and Copyright
10
14
 
11
15
  Copyright 2013-2015 Saku Ytti <saku@ytti.fi>
12
16
  2013-2015 Samer Abdel-Hafez <sam@arahant.net>
13
17
 
14
-
15
18
  Licensed under the Apache License, Version 2.0 (the "License");
16
19
  you may not use this file except in compliance with the License.
17
20
  You may obtain a copy of the License at
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'bundler/gem_tasks'
2
2
  require 'rake/testtask'
3
3
 
4
4
  gemspec = eval(File.read(Dir['*.gemspec'].first))
5
- gemfile = [gemspec.name, gemspec.version].join('-') + '.gem'
5
+ gemfile = "#{[gemspec.name, gemspec.version].join('-')}.gem"
6
6
 
7
7
  # Integrate Rubocop if available
8
8
  begin
@@ -44,18 +44,17 @@ end
44
44
 
45
45
  desc 'Tag the release'
46
46
  task :tag do
47
- system "git tag #{gemspec.version}"
47
+ system "git tag #{gemspec.version} -m 'Release #{gemspec.version}'"
48
48
  end
49
49
 
50
50
  desc 'Push to rubygems'
51
- task :push => :tag do
51
+ task push: :tag do
52
52
  system "gem push pkg/#{gemfile}"
53
53
  end
54
54
 
55
55
  desc 'Normalise file permissions'
56
56
  task :chmod do
57
- xbit = %w[
58
- ]
57
+ xbit = %w[]
59
58
  dirs = []
60
59
  %x(git ls-files -z).split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }.each do |file|
61
60
  dirs.push(File.dirname(file))
@@ -64,4 +63,48 @@ task :chmod do
64
63
  dirs.sort.uniq.each { |dir| File.chmod(0o0755, dir) }
65
64
  end
66
65
 
66
+ desc 'Copy web packages from npm into public'
67
+ task :weblibs do
68
+ weblibs = []
69
+ fonts = []
70
+
71
+ # jQuery
72
+ weblibs << 'node_modules/jquery/dist/jquery.js'
73
+
74
+ # Bootstrap
75
+ weblibs << 'node_modules/bootstrap/dist/js/bootstrap.js'
76
+ weblibs << 'node_modules/bootstrap/dist/js/bootstrap.js.map'
77
+ weblibs << 'node_modules/bootstrap/dist/css/bootstrap.css'
78
+ weblibs << 'node_modules/bootstrap/dist/css/bootstrap.css.map'
79
+ weblibs << 'node_modules/bootstrap/dist/js/bootstrap.bundle.js'
80
+ weblibs << 'node_modules/bootstrap/dist/js/bootstrap.bundle.js.map'
81
+
82
+ # Bootstrap-icons
83
+ weblibs << 'node_modules/bootstrap-icons/font/bootstrap-icons.css'
84
+ fonts << 'node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff'
85
+ fonts << 'node_modules/bootstrap-icons/font/fonts/bootstrap-icons.woff2'
86
+
87
+ # Datatables
88
+ weblibs << 'node_modules/datatables.net/js/dataTables.js'
89
+
90
+ # Datatables + Bootstrap
91
+ weblibs << 'node_modules/datatables.net-bs5/js/dataTables.bootstrap5.js'
92
+ weblibs << 'node_modules/datatables.net-bs5/css/dataTables.bootstrap5.css'
93
+
94
+ # Datatables Buttons + Bootstrap
95
+ weblibs << 'node_modules/datatables.net-buttons-bs5/js/buttons.bootstrap5.js'
96
+ weblibs << 'node_modules/datatables.net-buttons-bs5/css/buttons.bootstrap5.css'
97
+ # colVis
98
+ weblibs << 'node_modules/datatables.net-buttons/js/dataTables.buttons.js'
99
+ weblibs << 'node_modules/datatables.net-buttons/js/buttons.colVis.js'
100
+
101
+ weblibs.each do |w|
102
+ cp(w, 'lib/oxidized/web/public/weblibs')
103
+ end
104
+
105
+ fonts.each do |f|
106
+ cp(f, 'lib/oxidized/web/public/weblibs/fonts')
107
+ end
108
+ end
109
+
67
110
  task default: :test