goodcheck 2.5.2 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
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