goodcheck 2.5.2 → 3.0.1

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +49 -3
  3. data/LICENSE +1 -1
  4. data/README.md +8 -445
  5. data/lib/goodcheck.rb +9 -4
  6. data/lib/goodcheck/analyzer.rb +13 -9
  7. data/lib/goodcheck/buffer.rb +9 -21
  8. data/lib/goodcheck/cli.rb +79 -57
  9. data/lib/goodcheck/commands/check.rb +41 -27
  10. data/lib/goodcheck/commands/config_loading.rb +28 -5
  11. data/lib/goodcheck/commands/init.rb +4 -2
  12. data/lib/goodcheck/commands/pattern.rb +2 -1
  13. data/lib/goodcheck/commands/test.rb +38 -30
  14. data/lib/goodcheck/config.rb +68 -1
  15. data/lib/goodcheck/config_loader.rb +41 -31
  16. data/lib/goodcheck/error.rb +3 -0
  17. data/lib/goodcheck/exit_status.rb +8 -0
  18. data/lib/goodcheck/glob.rb +14 -3
  19. data/lib/goodcheck/import_loader.rb +96 -26
  20. data/lib/goodcheck/issue.rb +3 -3
  21. data/lib/goodcheck/location.rb +28 -0
  22. data/lib/goodcheck/logger.rb +4 -4
  23. data/lib/goodcheck/reporters/json.rb +6 -1
  24. data/lib/goodcheck/reporters/text.rb +44 -11
  25. data/lib/goodcheck/rule.rb +3 -1
  26. data/lib/goodcheck/unarchiver.rb +40 -0
  27. data/lib/goodcheck/version.rb +1 -1
  28. metadata +44 -82
  29. data/.github/dependabot.yml +0 -18
  30. data/.github/workflows/release.yml +0 -16
  31. data/.github/workflows/test.yml +0 -46
  32. data/.gitignore +0 -13
  33. data/.rubocop.yml +0 -5
  34. data/Dockerfile +0 -13
  35. data/Gemfile +0 -6
  36. data/Rakefile +0 -75
  37. data/bin/console +0 -14
  38. data/bin/setup +0 -8
  39. data/cheatsheet.pdf +0 -0
  40. data/docusaurus/.dockerignore +0 -2
  41. data/docusaurus/.gitignore +0 -12
  42. data/docusaurus/Dockerfile +0 -10
  43. data/docusaurus/docker-compose.yml +0 -18
  44. data/docusaurus/docs/commands.md +0 -69
  45. data/docusaurus/docs/configuration.md +0 -300
  46. data/docusaurus/docs/development.md +0 -15
  47. data/docusaurus/docs/getstarted.md +0 -46
  48. data/docusaurus/docs/rules.md +0 -79
  49. data/docusaurus/website/README.md +0 -193
  50. data/docusaurus/website/core/Footer.js +0 -100
  51. data/docusaurus/website/package.json +0 -14
  52. data/docusaurus/website/pages/en/index.js +0 -207
  53. data/docusaurus/website/pages/en/versions.js +0 -118
  54. data/docusaurus/website/sidebars.json +0 -11
  55. data/docusaurus/website/siteConfig.js +0 -171
  56. data/docusaurus/website/static/css/code-block-buttons.css +0 -39
  57. data/docusaurus/website/static/css/custom.css +0 -245
  58. data/docusaurus/website/static/img/favicon.ico +0 -0
  59. data/docusaurus/website/static/js/code-block-buttons.js +0 -47
  60. data/docusaurus/website/versioned_docs/version-1.0.0/commands.md +0 -70
  61. data/docusaurus/website/versioned_docs/version-1.0.0/configuration.md +0 -296
  62. data/docusaurus/website/versioned_docs/version-1.0.0/development.md +0 -16
  63. data/docusaurus/website/versioned_docs/version-1.0.0/getstarted.md +0 -47
  64. data/docusaurus/website/versioned_docs/version-1.0.0/rules.md +0 -81
  65. data/docusaurus/website/versioned_docs/version-1.0.2/rules.md +0 -79
  66. data/docusaurus/website/versioned_docs/version-2.4.0/configuration.md +0 -301
  67. data/docusaurus/website/versioned_docs/version-2.4.3/rules.md +0 -80
  68. data/docusaurus/website/versioned_sidebars/version-1.0.0-sidebars.json +0 -11
  69. data/docusaurus/website/versioned_sidebars/version-1.0.2-sidebars.json +0 -11
  70. data/docusaurus/website/versioned_sidebars/version-2.4.0-sidebars.json +0 -11
  71. data/docusaurus/website/versions.json +0 -12
  72. data/docusaurus/website/yarn.lock +0 -6604
  73. data/goodcheck.gemspec +0 -35
  74. data/goodcheck.yml +0 -10
  75. data/logo/GoodCheck Horizontal.pdf +0 -899
  76. data/logo/GoodCheck Horizontal.png +0 -0
  77. data/logo/GoodCheck Horizontal.svg +0 -55
  78. data/logo/GoodCheck logo.png +0 -0
  79. data/logo/GoodCheck vertical.png +0 -0
  80. data/sample.yml +0 -57
@@ -1,3 +1,3 @@
1
1
  module Goodcheck
2
- VERSION = "2.5.2"
2
+ VERSION = "3.0.1".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: goodcheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.2
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
- - Soutaro Matsumoto
7
+ - Sider Corporation
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-31 00:00:00.000000000 Z
11
+ date: 2021-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,64 +28,64 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '5.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: minitest-reporters
56
+ name: simplecov
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.4.2
61
+ version: '0.18'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.4.2
68
+ version: '0.18'
69
69
  - !ruby/object:Gem::Dependency
70
- name: activesupport
70
+ name: marcel
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '4.0'
75
+ version: '1.0'
76
76
  - - "<"
77
77
  - !ruby/object:Gem::Version
78
- version: '7.0'
78
+ version: '2.0'
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - ">="
84
84
  - !ruby/object:Gem::Version
85
- version: '4.0'
85
+ version: '1.0'
86
86
  - - "<"
87
87
  - !ruby/object:Gem::Version
88
- version: '7.0'
88
+ version: '2.0'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: strong_json
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -110,16 +110,22 @@ dependencies:
110
110
  name: rainbow
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - "~>"
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '3.0'
116
+ - - "<"
114
117
  - !ruby/object:Gem::Version
115
- version: 3.0.0
118
+ version: '4.0'
116
119
  type: :runtime
117
120
  prerelease: false
118
121
  version_requirements: !ruby/object:Gem::Requirement
119
122
  requirements:
120
- - - "~>"
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '3.0'
126
+ - - "<"
121
127
  - !ruby/object:Gem::Version
122
- version: 3.0.0
128
+ version: '4.0'
123
129
  - !ruby/object:Gem::Dependency
124
130
  name: psych
125
131
  requirement: !ruby/object:Gem::Requirement
@@ -129,7 +135,7 @@ dependencies:
129
135
  version: '3.1'
130
136
  - - "<"
131
137
  - !ruby/object:Gem::Version
132
- version: '4.0'
138
+ version: '5.0'
133
139
  type: :runtime
134
140
  prerelease: false
135
141
  version_requirements: !ruby/object:Gem::Requirement
@@ -139,65 +145,20 @@ dependencies:
139
145
  version: '3.1'
140
146
  - - "<"
141
147
  - !ruby/object:Gem::Version
142
- version: '4.0'
143
- description: Regexp based customizable linter
148
+ version: '5.0'
149
+ description: Goodcheck is a regexp based linter that allows you to define custom rules
150
+ in a YAML file.
144
151
  email:
145
- - matsumoto@soutaro.com
152
+ - support@siderlabs.com
146
153
  executables:
147
154
  - goodcheck
148
155
  extensions: []
149
156
  extra_rdoc_files: []
150
157
  files:
151
- - ".github/dependabot.yml"
152
- - ".github/workflows/release.yml"
153
- - ".github/workflows/test.yml"
154
- - ".gitignore"
155
- - ".rubocop.yml"
156
158
  - CHANGELOG.md
157
- - Dockerfile
158
- - Gemfile
159
159
  - LICENSE
160
160
  - README.md
161
- - Rakefile
162
- - bin/console
163
- - bin/setup
164
- - cheatsheet.pdf
165
- - docusaurus/.dockerignore
166
- - docusaurus/.gitignore
167
- - docusaurus/Dockerfile
168
- - docusaurus/docker-compose.yml
169
- - docusaurus/docs/commands.md
170
- - docusaurus/docs/configuration.md
171
- - docusaurus/docs/development.md
172
- - docusaurus/docs/getstarted.md
173
- - docusaurus/docs/rules.md
174
- - docusaurus/website/README.md
175
- - docusaurus/website/core/Footer.js
176
- - docusaurus/website/package.json
177
- - docusaurus/website/pages/en/index.js
178
- - docusaurus/website/pages/en/versions.js
179
- - docusaurus/website/sidebars.json
180
- - docusaurus/website/siteConfig.js
181
- - docusaurus/website/static/css/code-block-buttons.css
182
- - docusaurus/website/static/css/custom.css
183
- - docusaurus/website/static/img/favicon.ico
184
- - docusaurus/website/static/js/code-block-buttons.js
185
- - docusaurus/website/versioned_docs/version-1.0.0/commands.md
186
- - docusaurus/website/versioned_docs/version-1.0.0/configuration.md
187
- - docusaurus/website/versioned_docs/version-1.0.0/development.md
188
- - docusaurus/website/versioned_docs/version-1.0.0/getstarted.md
189
- - docusaurus/website/versioned_docs/version-1.0.0/rules.md
190
- - docusaurus/website/versioned_docs/version-1.0.2/rules.md
191
- - docusaurus/website/versioned_docs/version-2.4.0/configuration.md
192
- - docusaurus/website/versioned_docs/version-2.4.3/rules.md
193
- - docusaurus/website/versioned_sidebars/version-1.0.0-sidebars.json
194
- - docusaurus/website/versioned_sidebars/version-1.0.2-sidebars.json
195
- - docusaurus/website/versioned_sidebars/version-2.4.0-sidebars.json
196
- - docusaurus/website/versions.json
197
- - docusaurus/website/yarn.lock
198
161
  - exe/goodcheck
199
- - goodcheck.gemspec
200
- - goodcheck.yml
201
162
  - lib/goodcheck.rb
202
163
  - lib/goodcheck/analyzer.rb
203
164
  - lib/goodcheck/array_helper.rb
@@ -210,6 +171,8 @@ files:
210
171
  - lib/goodcheck/commands/test.rb
211
172
  - lib/goodcheck/config.rb
212
173
  - lib/goodcheck/config_loader.rb
174
+ - lib/goodcheck/error.rb
175
+ - lib/goodcheck/exit_status.rb
213
176
  - lib/goodcheck/glob.rb
214
177
  - lib/goodcheck/home_path.rb
215
178
  - lib/goodcheck/import_loader.rb
@@ -221,17 +184,16 @@ files:
221
184
  - lib/goodcheck/reporters/text.rb
222
185
  - lib/goodcheck/rule.rb
223
186
  - lib/goodcheck/trigger.rb
187
+ - lib/goodcheck/unarchiver.rb
224
188
  - lib/goodcheck/version.rb
225
- - logo/GoodCheck Horizontal.pdf
226
- - logo/GoodCheck Horizontal.png
227
- - logo/GoodCheck Horizontal.svg
228
- - logo/GoodCheck logo.png
229
- - logo/GoodCheck vertical.png
230
- - sample.yml
231
- homepage: https://github.com/sider/goodcheck
189
+ homepage: https://sider.github.io/goodcheck/
232
190
  licenses:
233
191
  - MIT
234
- metadata: {}
192
+ metadata:
193
+ homepage_uri: https://sider.github.io/goodcheck/
194
+ source_code_uri: https://github.com/sider/goodcheck
195
+ changelog_uri: https://github.com/sider/goodcheck/blob/master/CHANGELOG.md
196
+ bug_tracker_uri: https://github.com/sider/goodcheck/issues
235
197
  post_install_message:
236
198
  rdoc_options: []
237
199
  require_paths:
@@ -240,15 +202,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
202
  requirements:
241
203
  - - ">="
242
204
  - !ruby/object:Gem::Version
243
- version: 2.4.0
205
+ version: 2.5.0
244
206
  required_rubygems_version: !ruby/object:Gem::Requirement
245
207
  requirements:
246
208
  - - ">="
247
209
  - !ruby/object:Gem::Version
248
210
  version: '0'
249
211
  requirements: []
250
- rubygems_version: 3.1.2
212
+ rubygems_version: 3.2.20
251
213
  signing_key:
252
214
  specification_version: 4
253
- summary: Regexp based customizable linter
215
+ summary: Regexp based customizable linter.
254
216
  test_files: []
@@ -1,18 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: monthly
7
- time: "09:00"
8
- timezone: Asia/Tokyo
9
- open-pull-requests-limit: 10
10
- versioning-strategy: increase
11
- - package-ecosystem: npm
12
- directory: "/docusaurus/website"
13
- schedule:
14
- interval: monthly
15
- time: "09:00"
16
- timezone: Asia/Tokyo
17
- open-pull-requests-limit: 10
18
- versioning-strategy: increase
@@ -1,16 +0,0 @@
1
- name: Release
2
-
3
- on: push
4
-
5
- jobs:
6
- release:
7
- runs-on: ubuntu-latest
8
- steps:
9
- - uses: actions/checkout@v2
10
- - uses: softprops/action-gh-release@v1
11
- if: startsWith(github.ref, 'refs/tags/')
12
- with:
13
- body: |
14
- See the [changelog](https://github.com/${{ github.repository }}/blob/${{ github.sha }}/CHANGELOG.md) for more details.
15
- env:
16
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,46 +0,0 @@
1
- name: Test
2
-
3
- on: [push]
4
-
5
- jobs:
6
- test:
7
- runs-on: ubuntu-latest
8
- strategy:
9
- matrix:
10
- ruby: [2.4, 2.5, 2.6, 2.7]
11
- steps:
12
- - uses: actions/checkout@v2
13
- - uses: ruby/setup-ruby@v1
14
- with:
15
- ruby-version: ${{ matrix.ruby }}
16
- - run: |
17
- gem install bundler --no-document
18
- bundle config set path vendor/bundle
19
- bundle install --jobs=4 --retry=3
20
- - run: bundle exec rake
21
-
22
- build-docs:
23
- runs-on: ubuntu-latest
24
- steps:
25
- - uses: actions/checkout@v2
26
- - uses: ruby/setup-ruby@v1
27
- with:
28
- ruby-version: 2.7
29
- - run: |
30
- gem install bundler --no-document
31
- bundle config set path vendor/bundle
32
- bundle install --jobs=4 --retry=3
33
- - run: bundle exec rake docs:build
34
-
35
- benchmark:
36
- runs-on: ubuntu-latest
37
- steps:
38
- - uses: actions/checkout@v2
39
- - uses: ruby/setup-ruby@v1
40
- with:
41
- ruby-version: 2.7
42
- - run: |
43
- gem install bundler --no-document
44
- bundle config set path vendor/bundle
45
- bundle install --jobs=4 --retry=3
46
- - run: bundle exec rake benchmark:run[10000]
data/.gitignore DELETED
@@ -1,13 +0,0 @@
1
- /.bundle/
2
- /vendor/bundle/
3
- /.yardoc
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- /.idea
11
- /Gemfile.lock
12
- /.ruby-version
13
- .DS_Store
data/.rubocop.yml DELETED
@@ -1,5 +0,0 @@
1
- # We don't use RuboCop.
2
- # If you really believe a Cop should be enabled, open pull requests for each Cop and explain why it matters.
3
-
4
- AllCops:
5
- DisabledByDefault: true
data/Dockerfile DELETED
@@ -1,13 +0,0 @@
1
- FROM rubylang/ruby:2.6.3-bionic
2
-
3
- ENV DEBIAN_FRONTEND=noninteractive
4
-
5
- RUN mkdir /goodcheck
6
- WORKDIR /goodcheck
7
- COPY . /goodcheck/
8
- RUN rake install
9
-
10
- RUN mkdir /work
11
- WORKDIR /work
12
-
13
- ENTRYPOINT ["goodcheck"]
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in goodcheck.gemspec
6
- gemspec
data/Rakefile DELETED
@@ -1,75 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
8
- end
9
-
10
- task :default => :test
11
-
12
- namespace :docker do
13
- task :build do
14
- sh 'docker', 'build', '-t', 'sider/goodcheck:dev', '.'
15
- end
16
- end
17
-
18
- namespace :docs do
19
- desc "Install dependencies for the documentation website"
20
- task :install_deps do
21
- on_docs_dir do
22
- sh "yarn", "install"
23
- end
24
- end
25
-
26
- desc "Build the documentation website"
27
- task :build => [:install_deps] do
28
- on_docs_dir do
29
- sh "yarn", "run", "build"
30
- end
31
- end
32
-
33
- desc "Update the version of the documentation website"
34
- task :update_version => [:install_deps] do
35
- on_docs_dir do
36
- sh "yarn", "run", "version", Goodcheck::VERSION
37
- end
38
- end
39
-
40
- desc "Publish the documentation website"
41
- task :publish => [:build] do
42
- on_docs_dir do
43
- sh "yarn", "run", "publish-gh-pages"
44
- end
45
- end
46
-
47
- def on_docs_dir(&block)
48
- Dir.chdir "docusaurus/website", &block
49
- end
50
- end
51
-
52
- namespace :benchmark do
53
- desc "Run benchmark"
54
- task :run, [:n] do |_task, args|
55
- require "benchmark"
56
- require "net/http"
57
- require "tempfile"
58
- require_relative "lib/goodcheck"
59
- require_relative "lib/goodcheck/cli"
60
-
61
- content = Net::HTTP.get(URI("https://raw.githubusercontent.com/ruby/ruby/0256e4f0f5e10f0a15cbba2cd64e252dfa864e4a/gc.c"))
62
- target_file = Tempfile.new("goodcheck-benchmark-")
63
- target_file.write content
64
- target_file = target_file.path
65
-
66
- n = Integer(args[:n] || 1000)
67
- puts "n = #{n}"
68
-
69
- Benchmark.bm do |x|
70
- x.report do
71
- n.times { Goodcheck::CLI.new(stdout: STDOUT, stderr: STDERR).run(["check", target_file]) }
72
- end
73
- end
74
- end
75
- end