zold 0.31.10 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/.0pdd.yml +2 -19
  3. data/.github/typos.toml +11 -0
  4. data/.github/workflows/actionlint.yml +5 -21
  5. data/.github/workflows/bashate.yml +25 -0
  6. data/.github/workflows/codecov.yml +11 -24
  7. data/.github/workflows/copyrights.yml +6 -21
  8. data/.github/workflows/hadolint.yml +14 -0
  9. data/.github/workflows/markdown-lint.yml +19 -0
  10. data/.github/workflows/pdd.yml +5 -20
  11. data/.github/workflows/rake.yml +8 -22
  12. data/.github/workflows/reuse.yml +19 -0
  13. data/.github/workflows/shellcheck.yml +19 -0
  14. data/.github/workflows/typos.yml +21 -0
  15. data/.github/workflows/xcop.yml +5 -20
  16. data/.github/workflows/yamllint.yml +5 -20
  17. data/.gitignore +9 -6
  18. data/.rubocop.yml +16 -20
  19. data/.ruby-version +1 -1
  20. data/.rultor.yml +6 -22
  21. data/Dockerfile +11 -27
  22. data/Gemfile +21 -33
  23. data/Gemfile.lock +181 -126
  24. data/Guardfile +0 -0
  25. data/INSTALL.md +80 -59
  26. data/LICENSE.txt +1 -1
  27. data/LICENSES/MIT.txt +21 -0
  28. data/README.md +183 -154
  29. data/REUSE.toml +40 -0
  30. data/Rakefile +4 -38
  31. data/bin/zold +7 -37
  32. data/cucumber.yml +2 -19
  33. data/deploy.sh +4 -22
  34. data/features/cli.feature +2 -0
  35. data/features/gem_package.feature +2 -0
  36. data/features/step_definitions/steps.rb +2 -19
  37. data/features/support/env.rb +2 -19
  38. data/fixtures/merge/asserts.rb +3 -19
  39. data/fixtures/merge/into_no_wallet/assert.rb +2 -19
  40. data/fixtures/merge/legacy_negatives_stay/assert.rb +2 -19
  41. data/fixtures/merge/legacy_negatives_stay/copies/0123456789abcdef/scores.zc +1 -1
  42. data/fixtures/merge/missed_wallets/0123456789abcdef.z +0 -2
  43. data/fixtures/merge/missed_wallets/assert.rb +2 -19
  44. data/fixtures/merge/missed_wallets/copies/0123456789abcdef/scores.zc +1 -1
  45. data/fixtures/merge/negative_overwriting/assert.rb +2 -19
  46. data/fixtures/merge/negatives_in_between/0123456789abcdef.z +0 -1
  47. data/fixtures/merge/negatives_in_between/assert.rb +2 -19
  48. data/fixtures/merge/negatives_in_between/copies/0123456789abcdef/2.zc +0 -1
  49. data/fixtures/merge/negatives_in_between/opts +1 -1
  50. data/fixtures/merge/random_expenses/assert.rb +2 -19
  51. data/fixtures/merge/random_expenses/opts +1 -1
  52. data/fixtures/merge/simple_case/assert.rb +2 -19
  53. data/fixtures/merge/simple_case/opts +1 -1
  54. data/fixtures/merge/unconfirmed_income/assert.rb +2 -19
  55. data/fixtures/scripts/_head.sh +16 -33
  56. data/fixtures/scripts/calculate-scores.sh +3 -20
  57. data/fixtures/scripts/distribute-wallet.sh +26 -43
  58. data/fixtures/scripts/print-helps.sh +5 -23
  59. data/fixtures/scripts/pull-on-start.sh +12 -29
  60. data/fixtures/scripts/push-and-pull.sh +10 -27
  61. data/fixtures/scripts/redeploy-on-upgrade.sh +18 -34
  62. data/fixtures/scripts/spread-wallets.sh +24 -40
  63. data/lib/zold/age.rb +3 -20
  64. data/lib/zold/amount.rb +3 -20
  65. data/lib/zold/cached_wallets.rb +3 -20
  66. data/lib/zold/commands/alias.rb +4 -21
  67. data/lib/zold/commands/args.rb +4 -21
  68. data/lib/zold/commands/calculate.rb +5 -22
  69. data/lib/zold/commands/clean.rb +6 -23
  70. data/lib/zold/commands/create.rb +5 -22
  71. data/lib/zold/commands/diff.rb +5 -22
  72. data/lib/zold/commands/fetch.rb +6 -23
  73. data/lib/zold/commands/invoice.rb +5 -22
  74. data/lib/zold/commands/list.rb +5 -22
  75. data/lib/zold/commands/merge.rb +7 -24
  76. data/lib/zold/commands/next.rb +5 -22
  77. data/lib/zold/commands/node.rb +4 -21
  78. data/lib/zold/commands/pay.rb +6 -23
  79. data/lib/zold/commands/propagate.rb +5 -22
  80. data/lib/zold/commands/pull.rb +5 -22
  81. data/lib/zold/commands/push.rb +5 -22
  82. data/lib/zold/commands/remote.rb +7 -24
  83. data/lib/zold/commands/remove.rb +5 -22
  84. data/lib/zold/commands/routines/audit.rb +4 -21
  85. data/lib/zold/commands/routines/gc.rb +6 -23
  86. data/lib/zold/commands/routines/reconcile.rb +5 -22
  87. data/lib/zold/commands/routines/reconnect.rb +4 -21
  88. data/lib/zold/commands/routines/retire.rb +4 -21
  89. data/lib/zold/commands/routines/spread.rb +5 -22
  90. data/lib/zold/commands/routines.rb +3 -20
  91. data/lib/zold/commands/show.rb +5 -22
  92. data/lib/zold/commands/taxes.rb +5 -22
  93. data/lib/zold/commands/thread_badge.rb +3 -20
  94. data/lib/zold/copies.rb +6 -25
  95. data/lib/zold/dir_items.rb +3 -20
  96. data/lib/zold/endless.rb +5 -22
  97. data/lib/zold/gem.rb +3 -20
  98. data/lib/zold/hands.rb +6 -23
  99. data/lib/zold/head.rb +4 -21
  100. data/lib/zold/hexnum.rb +3 -20
  101. data/lib/zold/http.rb +3 -20
  102. data/lib/zold/hungry_wallets.rb +6 -23
  103. data/lib/zold/id.rb +3 -20
  104. data/lib/zold/json_page.rb +5 -22
  105. data/lib/zold/key.rb +3 -20
  106. data/lib/zold/metronome.rb +5 -22
  107. data/lib/zold/node/async_entrance.rb +6 -23
  108. data/lib/zold/node/entrance.rb +7 -24
  109. data/lib/zold/node/farm.rb +5 -22
  110. data/lib/zold/node/farmers.rb +15 -32
  111. data/lib/zold/node/front.rb +6 -23
  112. data/lib/zold/node/journaled_pipeline.rb +8 -25
  113. data/lib/zold/node/nodup_entrance.rb +6 -23
  114. data/lib/zold/node/nospam_entrance.rb +6 -23
  115. data/lib/zold/node/pipeline.rb +6 -23
  116. data/lib/zold/node/safe_entrance.rb +4 -22
  117. data/lib/zold/node/soft_error.rb +3 -20
  118. data/lib/zold/node/spread_entrance.rb +5 -22
  119. data/lib/zold/node/sync_entrance.rb +5 -22
  120. data/lib/zold/node/trace.rb +3 -20
  121. data/lib/zold/patch.rb +6 -23
  122. data/lib/zold/prefixes.rb +3 -20
  123. data/lib/zold/remotes.rb +5 -22
  124. data/lib/zold/signature.rb +3 -20
  125. data/lib/zold/size.rb +3 -20
  126. data/lib/zold/sync_wallets.rb +5 -22
  127. data/lib/zold/tax.rb +4 -21
  128. data/lib/zold/thread_pool.rb +4 -21
  129. data/lib/zold/tree_wallets.rb +3 -20
  130. data/lib/zold/txn.rb +4 -21
  131. data/lib/zold/txns.rb +4 -21
  132. data/lib/zold/upgrades.rb +4 -21
  133. data/lib/zold/verbose_thread.rb +5 -22
  134. data/lib/zold/version.rb +4 -21
  135. data/lib/zold/version_file.rb +4 -21
  136. data/lib/zold/wallet.rb +6 -23
  137. data/lib/zold/wallets.rb +5 -23
  138. data/lib/zold.rb +3 -21
  139. data/resources/banned-wallets.log +6 -6
  140. data/test/commands/routines/test_audit.rb +3 -21
  141. data/test/commands/routines/test_gc.rb +3 -21
  142. data/test/commands/routines/test_reconcile.rb +3 -21
  143. data/test/commands/routines/test_reconnect.rb +3 -21
  144. data/test/commands/routines/test_retire.rb +3 -21
  145. data/test/commands/test_alias.rb +2 -20
  146. data/test/commands/test_calculate.rb +5 -23
  147. data/test/commands/test_clean.rb +5 -23
  148. data/test/commands/test_create.rb +6 -24
  149. data/test/commands/test_diff.rb +4 -22
  150. data/test/commands/test_fetch.rb +3 -21
  151. data/test/commands/test_invoice.rb +3 -21
  152. data/test/commands/test_list.rb +3 -21
  153. data/test/commands/test_merge.rb +12 -35
  154. data/test/commands/test_node.rb +3 -21
  155. data/test/commands/test_pay.rb +5 -23
  156. data/test/commands/test_propagate.rb +6 -24
  157. data/test/commands/test_pull.rb +4 -22
  158. data/test/commands/test_push.rb +3 -21
  159. data/test/commands/test_remote.rb +10 -28
  160. data/test/commands/test_remove.rb +7 -25
  161. data/test/commands/test_show.rb +3 -21
  162. data/test/commands/test_taxes.rb +5 -23
  163. data/test/fake_home.rb +5 -22
  164. data/test/node/fake_entrance.rb +3 -20
  165. data/test/node/fake_node.rb +5 -22
  166. data/test/node/test_async_entrance.rb +3 -21
  167. data/test/node/test_entrance.rb +7 -25
  168. data/test/node/test_farm.rb +15 -33
  169. data/test/node/test_farmers.rb +3 -21
  170. data/test/node/test_front.rb +22 -42
  171. data/test/node/test_nodup_entrance.rb +4 -22
  172. data/test/node/test_nospam_entrance.rb +6 -24
  173. data/test/node/test_safe_entrance.rb +3 -21
  174. data/test/node/test_spread_entrance.rb +4 -22
  175. data/test/node/test_sync_entrance.rb +4 -22
  176. data/test/node/test_trace.rb +4 -22
  177. data/test/test__helper.rb +32 -31
  178. data/test/test_age.rb +5 -23
  179. data/test/test_amount.rb +15 -34
  180. data/test/test_cached_wallets.rb +3 -21
  181. data/test/test_copies.rb +10 -28
  182. data/test/test_dir_items.rb +4 -22
  183. data/test/test_gem.rb +3 -21
  184. data/test/test_hands.rb +3 -21
  185. data/test/test_hexnum.rb +3 -21
  186. data/test/test_http.rb +9 -27
  187. data/test/test_hungry_wallets.rb +6 -24
  188. data/test/test_id.rb +10 -28
  189. data/test/test_json_page.rb +3 -21
  190. data/test/test_key.rb +5 -23
  191. data/test/test_metronome.rb +6 -24
  192. data/test/test_patch.rb +10 -28
  193. data/test/test_prefixes.rb +3 -21
  194. data/test/test_remotes.rb +17 -35
  195. data/test/test_signature.rb +3 -21
  196. data/test/test_size.rb +3 -21
  197. data/test/test_sync_wallets.rb +3 -21
  198. data/test/test_tax.rb +6 -24
  199. data/test/test_thread_pool.rb +6 -24
  200. data/test/test_tree_wallets.rb +4 -22
  201. data/test/test_txn.rb +3 -21
  202. data/test/test_upgrades.rb +3 -21
  203. data/test/test_verbose_thread.rb +6 -24
  204. data/test/test_version.rb +2 -20
  205. data/test/test_wallet.rb +15 -33
  206. data/test/test_wallets.rb +4 -22
  207. data/test/test_zold.rb +7 -25
  208. data/test/upgrades/test_delete_banned_wallets.rb +4 -22
  209. data/test/upgrades/test_protocol_up.rb +3 -21
  210. data/upgrades/2.rb +3 -20
  211. data/upgrades/delete_banned_wallets.rb +3 -20
  212. data/upgrades/move_wallets_into_tree.rb +3 -20
  213. data/upgrades/protocol_up.rb +3 -20
  214. data/upgrades/rename_foreign_wallets.rb +3 -20
  215. data/views/journal.haml +25 -0
  216. data/views/layout.haml +25 -0
  217. data/views/wallet.haml +25 -0
  218. data/zold.gemspec +5 -21
  219. metadata +33 -15
  220. data/.simplecov +0 -36
  221. data/lib/zold/log.rb +0 -139
  222. data/test/test_log.rb +0 -49
data/test/test_patch.rb CHANGED
@@ -1,26 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require_relative 'fake_home'
25
7
  require_relative 'test__helper'
26
8
  require_relative '../lib/zold/key'
@@ -32,7 +14,7 @@ require_relative '../lib/zold/patch'
32
14
 
33
15
  # Patch test.
34
16
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
35
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
17
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
36
18
  # License:: MIT
37
19
  class TestPatch < Zold::Test
38
20
  def test_builds_patch
@@ -53,7 +35,7 @@ class TestPatch < Zold::Test
53
35
  patch.join(first) { false }
54
36
  patch.join(second) { false }
55
37
  patch.join(third) { false }
56
- assert_equal(true, patch.save(first.path, overwrite: true, allow_negative_balance: true))
38
+ assert(patch.save(first.path, overwrite: true, allow_negative_balance: true))
57
39
  assert_equal(Zold::Amount.new(zld: -53.0), first.balance)
58
40
  end
59
41
  end
@@ -67,7 +49,7 @@ class TestPatch < Zold::Test
67
49
  patch = Zold::Patch.new(home.wallets, log: fake_log)
68
50
  patch.join(first) { false }
69
51
  patch.join(second) { false }
70
- assert_equal(false, patch.save(first.path, overwrite: true))
52
+ refute(patch.save(first.path, overwrite: true))
71
53
  first.flush
72
54
  assert_equal(Zold::Amount::ZERO, first.balance)
73
55
  end
@@ -84,7 +66,7 @@ class TestPatch < Zold::Test
84
66
  patch = Zold::Patch.new(home.wallets, log: fake_log)
85
67
  patch.join(first) { false }
86
68
  patch.join(second) { false }
87
- assert_equal(true, patch.save(first.path, overwrite: true))
69
+ assert(patch.save(first.path, overwrite: true))
88
70
  first.flush
89
71
  assert_equal(amount * -1, first.balance)
90
72
  end
@@ -106,7 +88,7 @@ class TestPatch < Zold::Test
106
88
  patch = Zold::Patch.new(home.wallets, log: fake_log)
107
89
  patch.join(first) { false }
108
90
  patch.join(second) { false }
109
- assert_equal(true, patch.save(first.path, overwrite: true))
91
+ assert(patch.save(first.path, overwrite: true))
110
92
  first.flush
111
93
  assert_equal(Zold::Amount.new(zld: 2.0).to_s, first.balance.to_s)
112
94
  end
@@ -140,7 +122,7 @@ class TestPatch < Zold::Test
140
122
  patch = Zold::Patch.new(home.wallets, log: fake_log)
141
123
  patch.join(first) { false }
142
124
  patch.join(second) { false }
143
- assert_equal(true, patch.save(first.path, overwrite: true))
125
+ assert(patch.save(first.path, overwrite: true))
144
126
  first.flush
145
127
  assert_equal(3, first.txns.count)
146
128
  assert_equal(Zold::Amount.new(zld: -6.0).to_s, first.balance.to_s)
@@ -164,9 +146,9 @@ class TestPatch < Zold::Test
164
146
  lines = File.read(f).split("\n")
165
147
  assert_equal(2, lines.count)
166
148
  parts = lines[0].split(';')
167
- assert(!Zold::Txn.parse_time(parts[0]).nil?)
149
+ refute_nil(Zold::Txn.parse_time(parts[0]))
168
150
  assert_equal(1, parts[1].to_i)
169
- assert(!Zold::Txn.parse_time(parts[2]).nil?)
151
+ refute_nil(Zold::Txn.parse_time(parts[2]))
170
152
  assert_equal(Zold::Id::ROOT.to_s, parts[3])
171
153
  assert_equal(target.to_s, parts[4])
172
154
  assert_equal(amount, Zold::Amount.new(zents: parts[5].to_i))
@@ -1,26 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'tmpdir'
25
7
  require_relative 'fake_home'
26
8
  require_relative '../lib/zold/key'
@@ -30,7 +12,7 @@ require_relative '../lib/zold/prefixes'
30
12
 
31
13
  # Prefixes test.
32
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
33
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
15
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
34
16
  # License:: MIT
35
17
  class TestPrefixes < Zold::Test
36
18
  def test_creates_and_validates
data/test/test_remotes.rb CHANGED
@@ -1,38 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'tmpdir'
25
7
  require 'webmock/minitest'
26
8
  require 'threads'
27
9
  require_relative 'test__helper'
28
- require_relative '../lib/zold/log'
10
+ require 'loog'
29
11
  require_relative '../lib/zold/age'
30
12
  require_relative '../lib/zold/remotes'
31
13
  require_relative '../lib/zold/verbose_thread'
32
14
 
33
15
  # Remotes test.
34
16
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
35
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
17
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
36
18
  # License:: MIT
37
19
  class TestRemotes < Zold::Test
38
20
  def test_adds_remotes
@@ -41,7 +23,7 @@ class TestRemotes < Zold::Test
41
23
  FileUtils.touch(file)
42
24
  remotes = Zold::Remotes.new(file: file)
43
25
  remotes.add('127.0.0.1')
44
- assert(1, remotes.all.count)
26
+ assert_equal(1, remotes.all.count)
45
27
  end
46
28
  end
47
29
 
@@ -65,7 +47,7 @@ class TestRemotes < Zold::Test
65
47
  ].each do |t|
66
48
  File.write(file, t)
67
49
  remotes = Zold::Remotes.new(file: file)
68
- assert(remotes.all.empty?, remotes.all)
50
+ assert_empty(remotes.all, remotes.all)
69
51
  end
70
52
  end
71
53
  end
@@ -77,8 +59,8 @@ class TestRemotes < Zold::Test
77
59
  remotes = Zold::Remotes.new(file: file)
78
60
  ips = (0..50)
79
61
  ips.each { |i| remotes.add("0.0.0.#{i + 1}", 9999) }
80
- remotes.iterate(Zold::Log::NULL) { raise 'Intended' }
81
- ips.each { |i| assert(1, remotes.all[i][:errors]) }
62
+ remotes.iterate(Loog::NULL) { raise 'Intended' }
63
+ ips.each { |i| assert_equal(1, remotes.all[i][:errors]) }
82
64
  end
83
65
  end
84
66
 
@@ -89,7 +71,7 @@ class TestRemotes < Zold::Test
89
71
  remotes = Zold::Remotes.new(file: file)
90
72
  5.times { |i| remotes.add("0.0.0.#{i + 1}", 9999) }
91
73
  total = 0
92
- remotes.iterate(Zold::Log::NULL) do
74
+ remotes.iterate(Loog::NULL) do
93
75
  total += 1
94
76
  raise 'Intended'
95
77
  end
@@ -104,7 +86,7 @@ class TestRemotes < Zold::Test
104
86
  remotes = Zold::Remotes.new(file: file)
105
87
  5.times { |i| remotes.add("0.0.0.#{i + 1}", 9999) }
106
88
  total = 0
107
- remotes.iterate(Zold::Log::NULL) do
89
+ remotes.iterate(Loog::NULL) do
108
90
  sleep 0.25
109
91
  total += 1
110
92
  end
@@ -158,7 +140,7 @@ class TestRemotes < Zold::Test
158
140
  remotes.add('127.0.0.1')
159
141
  remotes.add('LOCALHOST', 433)
160
142
  remotes.remove('localhost', 433)
161
- assert(1, remotes.all.count)
143
+ assert_equal(1, remotes.all.count)
162
144
  end
163
145
  end
164
146
 
@@ -168,7 +150,7 @@ class TestRemotes < Zold::Test
168
150
  remotes.clean
169
151
  remotes.masters
170
152
  remotes.masters
171
- assert(!remotes.all.empty?)
153
+ refute_empty(remotes.all)
172
154
  end
173
155
  end
174
156
 
@@ -204,7 +186,7 @@ class TestRemotes < Zold::Test
204
186
  Threads.new(5).assert do
205
187
  remotes.error(host)
206
188
  end
207
- assert_equal(0, remotes.all.reject { |r| r[:host] == host }.size)
189
+ assert_equal(0, remotes.all.count { |r| r[:host] != host })
208
190
  end
209
191
  end
210
192
 
@@ -266,11 +248,11 @@ class TestRemotes < Zold::Test
266
248
  remotes = Zold::Remotes.new(file: File.join(dir, 'uu-90.csv'))
267
249
  remotes.clean
268
250
  remotes.add('192.168.0.1', 8081)
269
- assert_equal remotes.all.last[:errors], 0
251
+ assert_equal 0, remotes.all.last[:errors]
270
252
  remotes.error('192.168.0.1', 8081)
271
- assert_equal remotes.all.last[:errors], 1
253
+ assert_equal 1, remotes.all.last[:errors]
272
254
  remotes.unerror('192.168.0.1', 8081)
273
- assert_equal remotes.all.last[:errors], 0
255
+ assert_equal 0, remotes.all.last[:errors]
274
256
  end
275
257
  end
276
258
 
@@ -283,7 +265,7 @@ class TestRemotes < Zold::Test
283
265
 
284
266
  def test_reads_mtime_from_empty_file
285
267
  Dir.mktmpdir do |dir|
286
- assert(!Zold::Remotes.new(file: File.join(dir, 'file/is/absent')).mtime.nil?)
268
+ refute_nil(Zold::Remotes.new(file: File.join(dir, 'file/is/absent')).mtime)
287
269
  end
288
270
  end
289
271
 
@@ -1,26 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'tmpdir'
25
7
  require_relative 'test__helper'
26
8
  require_relative '../lib/zold/key'
@@ -31,7 +13,7 @@ require_relative '../lib/zold/signature'
31
13
 
32
14
  # Signature test.
33
15
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
34
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
16
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
35
17
  # License:: MIT
36
18
  class TestSignature < Zold::Test
37
19
  def test_signs_and_validates
data/test/test_size.rb CHANGED
@@ -1,32 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require_relative 'test__helper'
25
7
  require_relative '../lib/zold/size'
26
8
 
27
9
  # Size test.
28
10
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
11
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
30
12
  # License:: MIT
31
13
  class TestSize < Zold::Test
32
14
  def test_prints_size
@@ -1,26 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'concurrent'
25
7
  require 'threads'
26
8
  require_relative 'test__helper'
@@ -33,7 +15,7 @@ require_relative '../lib/zold/amount'
33
15
 
34
16
  # SyncWallets test.
35
17
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
36
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
18
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
37
19
  # License:: MIT
38
20
  class TestSyncWallets < Zold::Test
39
21
  def test_adds_wallet
data/test/test_tax.rb CHANGED
@@ -1,26 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'zold/score'
25
7
  require 'time'
26
8
  require_relative 'test__helper'
@@ -35,7 +17,7 @@ require_relative '../lib/zold/prefixes'
35
17
 
36
18
  # Tax test.
37
19
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
38
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
20
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
39
21
  # License:: MIT
40
22
  class TestTax < Zold::Test
41
23
  def test_print_fee
@@ -87,7 +69,7 @@ class TestTax < Zold::Test
87
69
  FakeHome.new(log: fake_log).run do |home|
88
70
  wallet = home.create_wallet
89
71
  tax = Zold::Tax.new(wallet)
90
- assert(!tax.to_text.nil?)
72
+ refute_nil(tax.to_text)
91
73
  end
92
74
  end
93
75
 
@@ -107,7 +89,7 @@ class TestTax < Zold::Test
107
89
  )
108
90
  tax = Zold::Tax.new(wallet, strength: 6)
109
91
  assert_equal(amount, tax.paid)
110
- assert(tax.debt < Zold::Amount::ZERO, tax.debt)
92
+ assert_operator(tax.debt, :<, Zold::Amount::ZERO, tax.debt)
111
93
  end
112
94
  end
113
95
 
@@ -165,7 +147,7 @@ class TestTax < Zold::Test
165
147
  )
166
148
  tax.pay(Zold::Key.new(file: 'fixtures/id_rsa'), score)
167
149
  assert(tax.exists?(tax.details(score)))
168
- assert(!tax.exists?('-'))
150
+ refute(tax.exists?('-'))
169
151
  end
170
152
  end
171
153
  end
@@ -1,33 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'concurrent'
25
7
  require_relative 'test__helper'
26
8
  require_relative '../lib/zold/thread_pool'
27
9
 
28
10
  # ThreadPool test.
29
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
12
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
31
13
  # License:: MIT
32
14
  class TestThreadPool < Zold::Test
33
15
  def test_closes_all_threads_right
@@ -74,16 +56,16 @@ class TestThreadPool < Zold::Test
74
56
  # forever
75
57
  end
76
58
  end
77
- assert(pool.to_json.is_a?(Array))
59
+ assert_kind_of(Array, pool.to_json)
78
60
  assert_equal('test', pool.to_json[0][:name])
79
61
  assert_equal('run', pool.to_json[0][:status])
80
- assert_equal(true, pool.to_json[0][:alive])
62
+ assert(pool.to_json[0][:alive])
81
63
  assert_equal(1, pool.to_json[0][:vars]['foo'])
82
64
  pool.kill
83
65
  end
84
66
 
85
67
  def test_prints_to_text
86
68
  pool = Zold::ThreadPool.new('test', log: fake_log)
87
- assert(!pool.to_s.nil?)
69
+ refute_nil(pool.to_s)
88
70
  end
89
71
  end
@@ -1,26 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'tmpdir'
25
7
  require_relative 'test__helper'
26
8
  require_relative '../lib/zold/wallet'
@@ -30,7 +12,7 @@ require_relative '../lib/zold/tree_wallets'
30
12
 
31
13
  # TreeWallets test.
32
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
33
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
15
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
34
16
  # License:: MIT
35
17
  class TestTreeWallets < Zold::Test
36
18
  def test_adds_wallet
@@ -39,7 +21,7 @@ class TestTreeWallets < Zold::Test
39
21
  id = Zold::Id.new('abcd0123abcd0123')
40
22
  wallets.acq(id, exclusive: true) do |wallet|
41
23
  wallet.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
42
- assert(wallet.path.end_with?('/a/b/c/d/abcd0123abcd0123.z'), wallet.path)
24
+ assert(wallet.path.end_with?('/a/b/c/d/abcd0123abcd0123.z'))
43
25
  end
44
26
  assert_equal(1, wallets.all.count)
45
27
  assert_equal(id, wallets.all[0])
data/test/test_txn.rb CHANGED
@@ -1,26 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require 'tmpdir'
25
7
  require 'time'
26
8
  require_relative 'test__helper'
@@ -30,7 +12,7 @@ require_relative '../lib/zold/amount'
30
12
 
31
13
  # Txn test.
32
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
33
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
15
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
34
16
  # License:: MIT
35
17
  class TestTxn < Zold::Test
36
18
  def test_prints_and_parses
@@ -1,33 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
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) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require 'minitest/autorun'
24
6
  require_relative 'test__helper'
25
7
  require_relative '../lib/zold/upgrades'
26
8
  require_relative '../lib/zold/version_file'
27
9
 
28
10
  # Upgrade test.
29
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
12
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
31
13
  # License:: MIT
32
14
  class TestUpgrades < Zold::Test
33
15
  # @todo #327:30min Uncomment, when you're ready to work on upgrade manager's