factbase 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/.0pdd.yml +2 -19
  3. data/.github/workflows/actionlint.yml +4 -20
  4. data/.github/workflows/benchmark.yml +10 -25
  5. data/.github/workflows/codecov.yml +6 -20
  6. data/.github/workflows/copyrights.yml +4 -19
  7. data/.github/workflows/markdown-lint.yml +4 -19
  8. data/.github/workflows/pdd.yml +4 -19
  9. data/.github/workflows/rake.yml +5 -21
  10. data/.github/workflows/reuse.yml +21 -0
  11. data/.github/workflows/xcop.yml +4 -19
  12. data/.github/workflows/yamllint.yml +4 -21
  13. data/.rubocop.yml +4 -21
  14. data/.rultor.yml +3 -19
  15. data/.simplecov +2 -19
  16. data/Gemfile +8 -24
  17. data/Gemfile.lock +40 -31
  18. data/LICENSES/MIT.txt +21 -0
  19. data/README.md +24 -0
  20. data/REUSE.toml +17 -0
  21. data/Rakefile +3 -28
  22. data/benchmarks/simple.rb +2 -19
  23. data/factbase.gemspec +2 -19
  24. data/lib/factbase/accum.rb +2 -19
  25. data/lib/factbase/churn.rb +36 -0
  26. data/lib/factbase/fact.rb +2 -19
  27. data/lib/factbase/flatten.rb +2 -19
  28. data/lib/factbase/inv.rb +6 -25
  29. data/lib/factbase/light.rb +32 -0
  30. data/lib/factbase/looged.rb +5 -26
  31. data/lib/factbase/pre.rb +6 -25
  32. data/lib/factbase/query.rb +4 -21
  33. data/lib/factbase/query_once.rb +2 -19
  34. data/lib/factbase/rules.rb +5 -26
  35. data/lib/factbase/syntax.rb +2 -19
  36. data/lib/factbase/tallied.rb +93 -0
  37. data/lib/factbase/taped.rb +88 -0
  38. data/lib/factbase/tee.rb +2 -19
  39. data/lib/factbase/term.rb +2 -19
  40. data/lib/factbase/term_once.rb +2 -19
  41. data/lib/factbase/terms/aggregates.rb +2 -19
  42. data/lib/factbase/terms/aliases.rb +2 -19
  43. data/lib/factbase/terms/casting.rb +2 -19
  44. data/lib/factbase/terms/debug.rb +2 -19
  45. data/lib/factbase/terms/defn.rb +2 -19
  46. data/lib/factbase/terms/logical.rb +2 -19
  47. data/lib/factbase/terms/math.rb +2 -19
  48. data/lib/factbase/terms/meta.rb +2 -19
  49. data/lib/factbase/terms/ordering.rb +2 -19
  50. data/lib/factbase/terms/strings.rb +2 -19
  51. data/lib/factbase/terms/system.rb +2 -19
  52. data/lib/factbase/to_json.rb +2 -19
  53. data/lib/factbase/to_xml.rb +2 -19
  54. data/lib/factbase/to_yaml.rb +2 -19
  55. data/lib/factbase.rb +38 -48
  56. data/test/factbase/terms/test_aggregates.rb +2 -19
  57. data/test/factbase/terms/test_aliases.rb +2 -19
  58. data/test/factbase/terms/test_casting.rb +2 -19
  59. data/test/factbase/terms/test_debug.rb +2 -19
  60. data/test/factbase/terms/test_defn.rb +2 -19
  61. data/test/factbase/terms/test_logical.rb +2 -19
  62. data/test/factbase/terms/test_math.rb +2 -19
  63. data/test/factbase/terms/test_meta.rb +2 -19
  64. data/test/factbase/terms/test_ordering.rb +2 -19
  65. data/test/factbase/terms/test_strings.rb +2 -19
  66. data/test/factbase/terms/test_system.rb +2 -19
  67. data/test/factbase/test_accum.rb +2 -19
  68. data/test/factbase/test_churn.rb +31 -0
  69. data/test/factbase/test_fact.rb +2 -19
  70. data/test/factbase/test_flatten.rb +2 -19
  71. data/test/factbase/test_inv.rb +2 -19
  72. data/test/factbase/test_looged.rb +2 -19
  73. data/test/factbase/test_pre.rb +2 -19
  74. data/test/factbase/test_query.rb +2 -19
  75. data/test/factbase/test_rules.rb +2 -19
  76. data/test/factbase/test_syntax.rb +2 -19
  77. data/test/factbase/test_tallied.rb +71 -0
  78. data/test/factbase/test_taped.rb +37 -0
  79. data/test/factbase/test_tee.rb +2 -19
  80. data/test/factbase/test_term.rb +2 -19
  81. data/test/factbase/test_to_json.rb +2 -19
  82. data/test/factbase/test_to_xml.rb +2 -19
  83. data/test/factbase/test_to_yaml.rb +2 -19
  84. data/test/test__helper.rb +3 -19
  85. data/test/test_factbase.rb +67 -45
  86. metadata +12 -3
  87. data/.yamllint.yml +0 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4cc974ce82891e109f03740f7562f798e955da874dc2b1a91b0858bda7206b0
4
- data.tar.gz: 7aac5d75a5e10fca5a6f74e9fc2e5b83ecaf9cc9d669e3384c52b508b732b45f
3
+ metadata.gz: 057bb10953848632e68138ac248e60ddfe6ea8395f2a2a5b7ffdd2fea2cf7b7e
4
+ data.tar.gz: fd26cf56e5d42ba80c7a99539bf585a81fcf3dfb82370830c2a178e1eccbe534
5
5
  SHA512:
6
- metadata.gz: 436eb0bc06eabc25825b36fdf8293f2654219e42a0470512d42bc075670a25d51936006303a67a4c183b7208ef1a9c8a940ab227af838fc4b4f8ae8020be4c4e
7
- data.tar.gz: e7ea774220cdef5e471cb66c666c3cea20ee0672991b1e0fa5797b60f31e5430c9a0e9b4a40298d68654d067b1c1c1c8318fff492ba0162217cdb9724af8133e
6
+ metadata.gz: 8d0475566890335428e8a654bae3a36eb87f9d5ead1e7618801546c5c968c6ffeafd1927372af354c176de7882586ba1923981d891a8d0fa5f7bf8a6b71afd7f
7
+ data.tar.gz: b096503eb48452c75f701b6b88b29ba2916e74dc9e02b9407d44de81eb4bc91d48e2bcb0dcfacd28b70bd5635d80537c580040c44ab96a6f34fb9bb26bf82804
data/.0pdd.yml CHANGED
@@ -1,22 +1,5 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
21
4
  errors:
22
5
  - yegor256@gmail.com
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: actionlint
22
6
  'on':
23
7
  push:
@@ -28,12 +12,12 @@ name: actionlint
28
12
  - master
29
13
  jobs:
30
14
  actionlint:
15
+ timeout-minutes: 15
31
16
  runs-on: ubuntu-24.04
32
17
  steps:
33
18
  - uses: actions/checkout@v4
34
19
  - name: Download actionlint
35
20
  id: get_actionlint
36
- # yamllint disable-line rule:line-length
37
21
  run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
38
22
  shell: bash
39
23
  - name: Check workflow files
@@ -1,44 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024-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 NONINFINGEMENT. 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.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
  ---
6
+ # yamllint disable rule:line-length
23
7
  name: benchmark
24
8
  'on':
25
9
  push:
26
- paths-ignore: [ 'README.md', '.github/**' ]
10
+ paths-ignore: ['README.md']
27
11
  concurrency:
28
12
  group: benchmark-${{ github.ref }}
29
13
  cancel-in-progress: true
30
14
  jobs:
31
15
  benchmark:
16
+ timeout-minutes: 15
32
17
  runs-on: ubuntu-24.04
33
18
  steps:
34
19
  - uses: actions/checkout@v4
35
20
  - uses: ruby/setup-ruby@v1
36
21
  with:
37
- ruby-version: '3.1'
38
- - run: |
39
- gem install bundler
40
- bundle install
41
- - run: ruby benchmarks/simple.rb > stdout.txt
22
+ ruby-version: 3.3
23
+ bundler-cache: true
24
+ - run: bundle config set --global path "$(pwd)/vendor/bundle"
25
+ - run: bundle install --no-color
26
+ - run: bundle exec ruby benchmarks/simple.rb > stdout.txt
42
27
  - run: |
43
28
  set -x
44
29
  sum=$(
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: codecov
22
6
  'on':
23
7
  push:
@@ -25,6 +9,7 @@ name: codecov
25
9
  - master
26
10
  jobs:
27
11
  codecov:
12
+ timeout-minutes: 15
28
13
  runs-on: ubuntu-24.04
29
14
  steps:
30
15
  - uses: actions/checkout@v4
@@ -32,7 +17,8 @@ jobs:
32
17
  with:
33
18
  ruby-version: 3.3
34
19
  bundler-cache: true
35
- - run: bundle install
20
+ - run: bundle config set --global path "$(pwd)/vendor/bundle"
21
+ - run: bundle install --no-color
36
22
  - run: bundle exec rake
37
23
  - uses: codecov/codecov-action@v5
38
24
  with:
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: copyrights
22
6
  'on':
23
7
  push:
@@ -28,6 +12,7 @@ name: copyrights
28
12
  - master
29
13
  jobs:
30
14
  copyrights:
15
+ timeout-minutes: 15
31
16
  runs-on: ubuntu-24.04
32
17
  steps:
33
18
  - uses: actions/checkout@v4
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: markdown-lint
22
6
  'on':
23
7
  push:
@@ -32,6 +16,7 @@ concurrency:
32
16
  cancel-in-progress: true
33
17
  jobs:
34
18
  markdown-lint:
19
+ timeout-minutes: 15
35
20
  runs-on: ubuntu-24.04
36
21
  steps:
37
22
  - uses: actions/checkout@v4
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: pdd
22
6
  'on':
23
7
  push:
@@ -28,6 +12,7 @@ name: pdd
28
12
  - master
29
13
  jobs:
30
14
  pdd:
15
+ timeout-minutes: 15
31
16
  runs-on: ubuntu-24.04
32
17
  steps:
33
18
  - uses: actions/checkout@v4
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: rake
22
6
  'on':
23
7
  push:
@@ -28,7 +12,6 @@ name: rake
28
12
  - master
29
13
  jobs:
30
14
  rake:
31
- name: test
32
15
  strategy:
33
16
  matrix:
34
17
  os: [ubuntu-24.04, macos-15, windows-2022]
@@ -40,5 +23,6 @@ jobs:
40
23
  with:
41
24
  ruby-version: ${{ matrix.ruby }}
42
25
  bundler-cache: true
43
- - run: bundle install
26
+ - run: bundle config set --global path "$(pwd)/vendor/bundle"
27
+ - run: bundle install --no-color
44
28
  - run: bundle exec rake
@@ -0,0 +1,21 @@
1
+ # (The MIT License)
2
+ #
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
5
+ ---
6
+ # yamllint disable rule:line-length
7
+ name: reuse
8
+ 'on':
9
+ push:
10
+ branches:
11
+ - master
12
+ pull_request:
13
+ branches:
14
+ - master
15
+ jobs:
16
+ reuse:
17
+ timeout-minutes: 15
18
+ runs-on: ubuntu-24.04
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ - uses: fsfe/reuse-action@v5
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: xcop
22
6
  'on':
23
7
  push:
@@ -28,6 +12,7 @@ name: xcop
28
12
  - master
29
13
  jobs:
30
14
  xcop:
15
+ timeout-minutes: 15
31
16
  runs-on: ubuntu-24.04
32
17
  steps:
33
18
  - uses: actions/checkout@v4
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  name: yamllint
22
6
  'on':
23
7
  push:
@@ -28,9 +12,8 @@ name: yamllint
28
12
  - master
29
13
  jobs:
30
14
  yamllint:
15
+ timeout-minutes: 15
31
16
  runs-on: ubuntu-24.04
32
17
  steps:
33
18
  - uses: actions/checkout@v4
34
19
  - uses: ibiqlik/action-yamllint@v3
35
- with:
36
- config_file: .yamllint.yml
data/.rubocop.yml CHANGED
@@ -1,22 +1,5 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
21
4
  AllCops:
22
5
  Exclude:
@@ -27,10 +10,10 @@ AllCops:
27
10
  TargetRubyVersion: 3.2
28
11
  SuggestExtensions: false
29
12
  NewCops: enable
30
- require:
13
+ plugins:
31
14
  - rubocop-minitest
32
15
  - rubocop-performance
33
-
16
+ - rubocop-rake
34
17
  Minitest/EmptyLineBeforeAssertionMethods:
35
18
  Enabled: false
36
19
  Gemspec/RequiredRubyVersion:
data/.rultor.yml CHANGED
@@ -1,23 +1,7 @@
1
- # Copyright (c) 2024-2025 Yegor Bugayenko
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the 'Software'), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in all
11
- # copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- # SOFTWARE.
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
2
+ # SPDX-License-Identifier: MIT
20
3
  ---
4
+ # yamllint disable rule:line-length
21
5
  docker:
22
6
  image: yegor256/rultor-ruby
23
7
  assets:
data/.simplecov CHANGED
@@ -1,25 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #
4
- # Copyright (c) 2024-2025 Yegor Bugayenko
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the 'Software'), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in all
14
- # copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- # SOFTWARE.
4
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
5
+ # SPDX-License-Identifier: MIT
23
6
 
24
7
  if Gem.win_platform?
25
8
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
data/Gemfile CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2024-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.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  source 'https://rubygems.org'
24
7
  gemspec
@@ -26,11 +9,12 @@ gemspec
26
9
  gem 'minitest', '5.25.4', require: false
27
10
  gem 'minitest-reporters', '1.7.1', require: false
28
11
  gem 'rake', '13.2.1', require: false
29
- gem 'rspec-rails', '7.1.0', require: false
30
- gem 'rubocop', '1.71.0', require: false
31
- gem 'rubocop-minitest', '0.36.0', require: false
32
- gem 'rubocop-performance', '1.23.1', require: false
33
- gem 'rubocop-rspec', '3.4.0', require: false
12
+ gem 'rspec-rails', '7.1.1', require: false
13
+ gem 'rubocop', '1.72.2', require: false
14
+ gem 'rubocop-minitest', '>0', require: false
15
+ gem 'rubocop-performance', '>0', require: false
16
+ gem 'rubocop-rake', '>0', require: false
17
+ gem 'rubocop-rspec', '>0', require: false
34
18
  gem 'simplecov', '0.22.0', require: false
35
19
  gem 'simplecov-cobertura', '2.1.0', require: false
36
20
  gem 'threads', '0.4.1', require: false