xcop 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bbd743a2f9b2c29b46189f3e1db5932f72a23d37a114772e7c093f0aaa321665
4
- data.tar.gz: 694ea7ff2629b45f053e0abd070c258026ce16f8c8e16e61cbf0edbed7d25c29
3
+ metadata.gz: 4cd1d77aa073a33fa549467c9140a9b29acaa7bcb5153063fec23f0e4515dd6c
4
+ data.tar.gz: ea379a6c817dcd72c7b55115eba1b2e894456db388cc417bbb1de450cb260541
5
5
  SHA512:
6
- metadata.gz: 8a74e95561ad8ad29690f0d9881ed03ddd0d0416a65334dd60c38fb338192db0392e95ee97ac2c58054750c8fcafc628f26aedf1da2e1c30e46a66d8ba988c4f
7
- data.tar.gz: 2f3a9a230975698e9bfa079e1d57d9e29de681de9612ed192072606c299b83e509152c6e31d42c324d23a8e44231e0eb8419295b59135970176c2aedde7a80c4
6
+ metadata.gz: 5bd10b38f9d7d37bb1ba65b8d72641cfbd64aa9a160f03fd8cd9a136e1c336863380ce8787fdd2a941d5f754a7233cea7c8d3f1b26da4993cb48209d8a051f0f
7
+ data.tar.gz: 1ccb0d23efd0ea1368ce79f63707e1cdd7e5aae6d924423ccc10e0b97778665c81bbacebd06c955dcf233e64a27b6ddfd90615439dcacd98cd0491c87a00e80d
data/.0pdd.yml CHANGED
@@ -1,3 +1,25 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
1
23
  errors:
2
24
  - yegor256@gmail.com
3
25
  # alerts:
@@ -0,0 +1,44 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
23
+ name: actionlint
24
+ 'on':
25
+ push:
26
+ branches:
27
+ - master
28
+ pull_request:
29
+ branches:
30
+ - master
31
+ jobs:
32
+ actionlint:
33
+ timeout-minutes: 15
34
+ runs-on: ubuntu-24.04
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+ - name: Download actionlint
38
+ id: get_actionlint
39
+ # yamllint disable-line rule:line-length
40
+ run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
41
+ shell: bash
42
+ - name: Check workflow files
43
+ run: ${{ steps.get_actionlint.outputs.executable }} -color
44
+ shell: bash
@@ -0,0 +1,37 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
23
+ name: copyrights
24
+ 'on':
25
+ push:
26
+ branches:
27
+ - master
28
+ pull_request:
29
+ branches:
30
+ - master
31
+ jobs:
32
+ copyrights:
33
+ timeout-minutes: 15
34
+ runs-on: ubuntu-24.04
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+ - uses: yegor256/copyrights-action@0.0.8
@@ -0,0 +1,33 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
23
+ name: pdd
24
+ on:
25
+ push:
26
+ pull_request:
27
+ jobs:
28
+ pdd:
29
+ timeout-minutes: 15
30
+ runs-on: ubuntu-24.04
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ - uses: g4s8/pdd-action@master
@@ -1,3 +1,24 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
1
22
  ---
2
23
  name: rake
3
24
  on:
@@ -11,11 +32,11 @@ jobs:
11
32
  test:
12
33
  strategy:
13
34
  matrix:
14
- os: [ubuntu-latest, macos-latest]
35
+ os: [ubuntu-24.04, macos-15]
15
36
  ruby: ['2.7', '3.0']
16
37
  runs-on: ${{ matrix.os }}
17
38
  steps:
18
- - uses: actions/checkout@v2
39
+ - uses: actions/checkout@v4
19
40
  - uses: ruby/setup-ruby@v1
20
41
  with:
21
42
  ruby-version: ${{ matrix.ruby }}
@@ -0,0 +1,33 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
23
+ name: xcop
24
+ on:
25
+ push:
26
+ pull_request:
27
+ jobs:
28
+ xcop:
29
+ timeout-minutes: 15
30
+ runs-on: ubuntu-24.04
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ - uses: g4s8/xcop-action@master
@@ -0,0 +1,37 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
23
+ name: yamllint
24
+ 'on':
25
+ push:
26
+ branches:
27
+ - master
28
+ pull_request:
29
+ branches:
30
+ - master
31
+ jobs:
32
+ yamllint:
33
+ timeout-minutes: 15
34
+ runs-on: ubuntu-24.04
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+ - uses: ibiqlik/action-yamllint@v3
data/.rubocop.yml CHANGED
@@ -1,3 +1,25 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
1
23
  AllCops:
2
24
  Exclude:
3
25
  - 'bin/**/*'
@@ -6,7 +28,6 @@ AllCops:
6
28
  TargetRubyVersion: 2.2
7
29
  NewCops: enable
8
30
  SuggestExtensions: false
9
-
10
31
  Metrics/CyclomaticComplexity:
11
32
  Max: 10
12
33
  Metrics/MethodLength:
@@ -21,3 +42,4 @@ Layout/EmptyLineAfterGuardClause:
21
42
  Enabled: false
22
43
  Style/ClassAndModuleChildren:
23
44
  Enabled: false
45
+ require: []
data/.rultor.yml CHANGED
@@ -1,9 +1,32 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
1
23
  assets:
2
24
  rubygems.yml: yegor256/home#assets/rubygems.yml
3
25
  install: |
4
26
  pdd -f /dev/null
5
27
  sudo bundle install --no-color "--gemfile=$(pwd)/Gemfile"
6
28
  release:
29
+ pre: false
7
30
  script: |-
8
31
  bundle exec rake
9
32
  rm -rf *.gem
data/.simplecov CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,3 +20,18 @@
20
20
 
21
21
  source 'https://rubygems.org'
22
22
  gemspec
23
+
24
+ gem 'cucumber', '8.0.0', require: false
25
+ gem 'loog', '>0', require: false
26
+ gem 'minitest', '5.25.4', require: false
27
+ gem 'minitest-reporters', '1.7.1', require: false
28
+ gem 'rake', '13.2.1', require: false
29
+ gem 'rspec-rails', '7.1.1', require: false
30
+ gem 'rubocop', '1.71.2', require: false
31
+ gem 'rubocop-minitest', '>0', require: false
32
+ gem 'rubocop-performance', '>0', require: false
33
+ gem 'rubocop-rake', '>0', require: false
34
+ gem 'rubocop-rspec', '>0', require: false
35
+ gem 'simplecov', '0.22.0', require: false
36
+ gem 'simplecov-cobertura', '2.1.0', require: false
37
+ gem 'yard', '0.9.37', require: false
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2017-2022 Yegor Bugayenko
3
+ Copyright (c) 2017-2025 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  <img alt="XCOP logo" src="/logo.svg" width="64px"/>
2
2
 
3
3
  [![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)
4
- [![Managed by Zerocracy](https://www.0crat.com/badge/C3RFVLU72.svg)](https://www.0crat.com/p/C3RFVLU72)
5
4
  [![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/xcop)](http://www.rultor.com/p/yegor256/xcop)
6
5
  [![We recommend RubyMine](https://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/)
7
6
 
@@ -9,7 +8,6 @@
9
8
  [![PDD status](http://www.0pdd.com/svg?name=yegor256/xcop)](http://www.0pdd.com/p?name=yegor256/xcop)
10
9
  [![Gem Version](https://badge.fury.io/rb/xcop.svg)](http://badge.fury.io/rb/xcop)
11
10
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/xcop/blob/master/LICENSE.txt)
12
-
13
11
  [![Maintainability](https://api.codeclimate.com/v1/badges/396ec0584e0a84adc723/maintainability)](https://codeclimate.com/github/yegor256/xcop/maintainability)
14
12
  [![Test Coverage](https://img.shields.io/codecov/c/github/yegor256/xcop.svg)](https://codecov.io/github/yegor256/xcop?branch=master)
15
13
  ![Lines of code](https://img.shields.io/tokei/lines/github/yegor256/xcop)
@@ -62,15 +60,16 @@ $ xcop --fix $(find . -name '*.xml')
62
60
 
63
61
  You can put command line options into `.xcop` file in the directory
64
62
  where you start `xcop`. Each option should take a single line in the file.
65
- They all will be _added_ to the list of options you specify. For example:
63
+ They all will be _added_ to the list of options you specify. For example,
64
+ as it was suggested in [this blog post](https://www.yegor256.com/2022/07/20/command-line-defaults.html):
66
65
 
67
66
  ```
68
- --license LICENSE.txt
67
+ --license=LICENSE.txt
69
68
  --nocolor
70
69
  --quiet
71
- --include **/*
72
- --exclude **/*.xsl
73
- --exclude **/*.html
70
+ --include=**/*
71
+ --exclude=**/*.xsl
72
+ --exclude=**/*.html
74
73
  ```
75
74
 
76
75
  You can also create `~/.xcop` file (in your personal home directory), which
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -31,7 +31,7 @@ def version
31
31
  Gem::Specification.load(Dir['*.gemspec'].first).version
32
32
  end
33
33
 
34
- task default: %i[clean test features rubocop copyright]
34
+ task default: %i[clean test features rubocop]
35
35
 
36
36
  require 'rake/testtask'
37
37
  desc 'Run all unit tests'
@@ -42,13 +42,10 @@ Rake::TestTask.new(:test) do |test|
42
42
  test.verbose = false
43
43
  end
44
44
 
45
- require 'rdoc/task'
46
- desc 'Build RDoc documentation'
47
- Rake::RDocTask.new do |rdoc|
48
- rdoc.rdoc_dir = 'rdoc'
49
- rdoc.title = "#{name} #{version}"
50
- rdoc.rdoc_files.include('README*')
51
- rdoc.rdoc_files.include('lib/**/*.rb')
45
+ require 'yard'
46
+ desc 'Build Yard documentation'
47
+ YARD::Rake::YardocTask.new do |t|
48
+ t.files = ['lib/**/*.rb']
52
49
  end
53
50
 
54
51
  require 'rubocop/rake_task'
@@ -66,11 +63,3 @@ end
66
63
  Cucumber::Rake::Task.new(:'features:html') do |t|
67
64
  t.profile = 'html_report'
68
65
  end
69
-
70
- task :copyright do
71
- sh "grep -q -r '2017-#{Date.today.strftime('%Y')}' \
72
- --include '*.rb' \
73
- --include '*.txt' \
74
- --include 'Rakefile' \
75
- ."
76
- end
data/bin/xcop CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # Copyright (c) 2017-2022 Yegor Bugayenko
2
+ # Copyright (c) 2017-2025 Yegor Bugayenko
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  # of this software and associated documentation files (the 'Software'), to deal
data/cucumber.yml CHANGED
@@ -1,3 +1,25 @@
1
+ # (The MIT License)
2
+ #
3
+ # Copyright (c) 2017-2025 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ ---
1
23
  default: --format pretty
2
24
  travis: --format progress
3
25
  html_report: --format progress --format html --out=features_report.html
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@ require 'English'
26
26
  Before do
27
27
  @cwd = Dir.pwd
28
28
  @dir = Dir.mktmpdir('test')
29
- FileUtils.mkdir_p(@dir) unless File.exist?(@dir)
29
+ FileUtils.mkdir_p(@dir)
30
30
  Dir.chdir(@dir)
31
31
  @opts = Slop.parse ['-v', '-s', @dir] do |o|
32
32
  o.bool '-v', '--verbose'
@@ -36,12 +36,12 @@ end
36
36
 
37
37
  After do
38
38
  Dir.chdir(@cwd)
39
- FileUtils.rm_rf(@dir) if File.exist?(@dir)
39
+ FileUtils.rm_rf(@dir)
40
40
  end
41
41
 
42
42
  Given(/^I have a "([^"]*)" file with content:$/) do |file, text|
43
43
  FileUtils.mkdir_p(File.dirname(file)) unless File.exist?(file)
44
- File.write(file, text.gsub(/\\xFF/, 0xFF.chr))
44
+ File.write(file, text.gsub('\\xFF', 0xFF.chr))
45
45
  end
46
46
 
47
47
  When(%r{^I run bin/xcop with "([^"]*)"$}) do |arg|
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
data/lib/xcop/cli.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@ require_relative 'document'
26
26
 
27
27
  # Command line interface.
28
28
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
- # Copyright:: Copyright (c) 2017-2022 Yegor Bugayenko
29
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
30
30
  # License:: MIT
31
31
  class Xcop::CLI
32
32
  def initialize(files, license, nocolor: false)
data/lib/xcop/document.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -25,7 +25,7 @@ require_relative 'version'
25
25
 
26
26
  # One document.
27
27
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
28
- # Copyright:: Copyright (c) 2017-2022 Yegor Bugayenko
28
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
29
29
  # License:: MIT
30
30
  class Xcop::Document
31
31
  # Ctor.
@@ -77,6 +77,6 @@ class Xcop::Document
77
77
  end
78
78
 
79
79
  def schars(text)
80
- text.gsub(/\n/, "\\n\n")
80
+ text.gsub("\n", "\\n\n")
81
81
  end
82
82
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,7 +24,7 @@ require_relative '../xcop/cli'
24
24
 
25
25
  # Xcop rake task.
26
26
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
27
- # Copyright:: Copyright (c) 2017-2022 Yegor Bugayenko
27
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
28
28
  # License:: MIT
29
29
  class Xcop::RakeTask < Rake::TaskLib
30
30
  attr_accessor :name, :fail_on_error, :excludes, :includes, :license, :quiet
@@ -57,11 +57,13 @@ class Xcop::RakeTask < Rake::TaskLib
57
57
  print Rainbow('.').green unless @quiet
58
58
  end
59
59
  rescue StandardError => e
60
+ puts e.message
60
61
  abort(e.message)
61
62
  end
62
63
  return if @quiet
63
- puts "\n#{pluralize(good.length, 'file')} checked, \
64
- everything looks #{Rainbow('pretty').green}"
64
+ puts \
65
+ "\n#{pluralize(good.length, 'file')} checked, " \
66
+ "everything looks #{Rainbow('pretty').green}"
65
67
  end
66
68
 
67
69
  def pluralize(num, text)
data/lib/xcop/version.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,8 +20,8 @@
20
20
 
21
21
  # Xcop main module.
22
22
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
23
- # Copyright:: Copyright (c) 2017-2022 Yegor Bugayenko
23
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  module Xcop
26
- VERSION = '0.7.1'.freeze
26
+ VERSION = '0.7.2'.freeze
27
27
  end
data/renovate.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:base"
5
+ ]
6
+ }
data/test/test__helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,11 +20,10 @@
20
20
 
21
21
  $stdout.sync = true
22
22
 
23
- require 'simplecov'
24
- SimpleCov.start
25
- if ENV['CI'] == 'true'
26
- require 'codecov'
27
- SimpleCov.formatter = SimpleCov::Formatter::Codecov
28
- end
23
+ require 'simplecov-cobertura'
24
+ SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
25
+
26
+ require 'minitest/reporters'
27
+ Minitest::Reporters.use! [Minitest::Reporters::SpecReporter.new]
29
28
 
30
29
  require 'minitest/autorun'
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@ require_relative '../lib/xcop/document'
26
26
 
27
27
  # Test for Document class.
28
28
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
- # Copyright:: Copyright (c) 2017-2022 Yegor Bugayenko
29
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
30
30
  # License:: MIT
31
31
  class TestXcop < Minitest::Test
32
32
  def test_basic
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -25,7 +25,7 @@ require_relative '../lib/xcop/rake_task'
25
25
 
26
26
  # Xcop rake task.
27
27
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
28
- # Copyright:: Copyright (c) 2017-2022 Yegor Bugayenko
28
+ # Copyright:: Copyright (c) 2017-2025 Yegor Bugayenko
29
29
  # License:: MIT
30
30
  class TestRakeTask < Minitest::Test
31
31
  def test_basic
data/xcop.gemspec CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2017-2022 Yegor Bugayenko
1
+ # Copyright (c) 2017-2025 Yegor Bugayenko
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the 'Software'), to deal
@@ -25,9 +25,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
25
25
  require_relative 'lib/xcop/version'
26
26
 
27
27
  Gem::Specification.new do |s|
28
- s.specification_version = 2 if s.respond_to? :specification_version=
29
28
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
30
- s.rubygems_version = '2.2'
31
29
  s.required_ruby_version = '>= 2.2'
32
30
  s.name = 'xcop'
33
31
  s.version = Xcop::VERSION
@@ -42,15 +40,8 @@ Gem::Specification.new do |s|
42
40
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
43
41
  s.rdoc_options = ['--charset=UTF-8']
44
42
  s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
45
- s.add_runtime_dependency 'differ', '~>0.1.2'
46
- s.add_runtime_dependency 'nokogiri', '~>1.10'
47
- s.add_runtime_dependency 'rainbow', '~>3.0'
48
- s.add_runtime_dependency 'slop', '~>4.4'
49
- s.add_development_dependency 'codecov', '0.6.0'
50
- s.add_development_dependency 'cucumber', '8.0.0'
51
- s.add_development_dependency 'minitest', '5.15.0'
52
- s.add_development_dependency 'rake', '13.0.6'
53
- s.add_development_dependency 'rdoc', '6.4.0'
54
- s.add_development_dependency 'rubocop', '1.30.1'
55
- s.add_development_dependency 'rubocop-rspec', '2.11.1'
43
+ s.add_dependency 'differ', '~>0.1.2'
44
+ s.add_dependency 'nokogiri', '~>1.10'
45
+ s.add_dependency 'rainbow', '~>3.0'
46
+ s.add_dependency 'slop', '~>4.4'
56
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-13 00:00:00.000000000 Z
11
+ date: 2025-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: differ
@@ -66,104 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '4.4'
69
- - !ruby/object:Gem::Dependency
70
- name: codecov
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 0.6.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 0.6.0
83
- - !ruby/object:Gem::Dependency
84
- name: cucumber
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 8.0.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 8.0.0
97
- - !ruby/object:Gem::Dependency
98
- name: minitest
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '='
102
- - !ruby/object:Gem::Version
103
- version: 5.15.0
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '='
109
- - !ruby/object:Gem::Version
110
- version: 5.15.0
111
- - !ruby/object:Gem::Dependency
112
- name: rake
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '='
116
- - !ruby/object:Gem::Version
117
- version: 13.0.6
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '='
123
- - !ruby/object:Gem::Version
124
- version: 13.0.6
125
- - !ruby/object:Gem::Dependency
126
- name: rdoc
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - '='
130
- - !ruby/object:Gem::Version
131
- version: 6.4.0
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - '='
137
- - !ruby/object:Gem::Version
138
- version: 6.4.0
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - '='
144
- - !ruby/object:Gem::Version
145
- version: 1.30.1
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - '='
151
- - !ruby/object:Gem::Version
152
- version: 1.30.1
153
- - !ruby/object:Gem::Dependency
154
- name: rubocop-rspec
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - '='
158
- - !ruby/object:Gem::Version
159
- version: 2.11.1
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - '='
165
- - !ruby/object:Gem::Version
166
- version: 2.11.1
167
69
  description: Validates XML-like documents for proper formatting
168
70
  email: yegor256@gmail.com
169
71
  executables:
@@ -175,9 +77,12 @@ extra_rdoc_files:
175
77
  files:
176
78
  - ".0pdd.yml"
177
79
  - ".gitattributes"
178
- - ".github/ISSUE_TEMPLATE.md"
179
- - ".github/PULL_REQUEST_TEMPLATE.md"
80
+ - ".github/workflows/actionlint.yml"
81
+ - ".github/workflows/copyrights.yml"
82
+ - ".github/workflows/pdd.yml"
180
83
  - ".github/workflows/rake.yml"
84
+ - ".github/workflows/xcop.yml"
85
+ - ".github/workflows/yamllint.yml"
181
86
  - ".gitignore"
182
87
  - ".pdd"
183
88
  - ".rubocop.yml"
@@ -199,6 +104,7 @@ files:
199
104
  - lib/xcop/rake_task.rb
200
105
  - lib/xcop/version.rb
201
106
  - logo.svg
107
+ - renovate.json
202
108
  - test/test__helper.rb
203
109
  - test/test_document.rb
204
110
  - test/test_rake_task.rb
@@ -224,8 +130,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
224
130
  - !ruby/object:Gem::Version
225
131
  version: '0'
226
132
  requirements: []
227
- rubygems_version: 3.1.2
133
+ rubygems_version: 3.4.10
228
134
  signing_key:
229
- specification_version: 2
135
+ specification_version: 4
230
136
  summary: XML Formatting Static Validator
231
137
  test_files: []
@@ -1,12 +0,0 @@
1
- Make sure the title of the issue explains the problem you are having. Also, the description of the issue must clearly explain what is broken, not what you want us to implement. Go through this checklist and make sure you answer "YES" to all points:
2
-
3
- - You have all pre-requisites listed in README.md installed
4
- - You are sure that you are not reporting a duplicate (search all issues)
5
- - You say "is broken" or "doesn't work" in the title
6
- - You tell us what you are trying to do
7
- - You explain the results you are getting
8
- - You suggest an alternative result you would like to see
9
-
10
- This article will help you understand what we are looking for: http://www.yegor256.com/2014/11/24/principles-of-bug-tracking.html
11
-
12
- Thank you for your contribution!
@@ -1,11 +0,0 @@
1
- Many thanks for your contribution, we truly appreciate it. We will appreciate it even more, if you make sure that you can say "YES" to each point in this short checklist:
2
-
3
- - You made a small amount of changes (less than 100 lines, less than 10 files)
4
- - You made changes related to only one bug (create separate PRs for separate problems)
5
- - You are ready to defend your changes (there will be a code review)
6
- - You don't touch what you don't understand
7
- - You ran the build locally and it passed
8
-
9
- This article will help you understand what we are looking for: http://www.yegor256.com/2015/02/09/serious-code-reviewer.html
10
-
11
- Thank you for your contribution!