zold 0.16.13 → 0.16.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/zold +3 -2
- data/lib/zold/commands/create.rb +1 -1
- data/lib/zold/commands/pay.rb +1 -1
- data/lib/zold/endless.rb +1 -1
- data/lib/zold/gem.rb +1 -1
- data/lib/zold/node/farm.rb +15 -8
- data/lib/zold/node/front.rb +12 -2
- data/lib/zold/version.rb +1 -1
- data/test/commands/routines/test_reconnect.rb +1 -1
- data/test/commands/routines/test_spread.rb +1 -1
- data/test/commands/test_alias.rb +1 -1
- data/test/commands/test_calculate.rb +1 -1
- data/test/commands/test_clean.rb +1 -1
- data/test/commands/test_create.rb +1 -1
- data/test/commands/test_diff.rb +1 -1
- data/test/commands/test_fetch.rb +1 -1
- data/test/commands/test_invoice.rb +1 -1
- data/test/commands/test_list.rb +1 -1
- data/test/commands/test_merge.rb +1 -1
- data/test/commands/test_node.rb +1 -1
- data/test/commands/test_pay.rb +1 -1
- data/test/commands/test_propagate.rb +1 -1
- data/test/commands/test_pull.rb +1 -1
- data/test/commands/test_push.rb +1 -1
- data/test/commands/test_remote.rb +1 -1
- data/test/commands/test_remove.rb +1 -1
- data/test/commands/test_show.rb +1 -1
- data/test/commands/test_taxes.rb +1 -1
- data/test/node/test_async_entrance.rb +1 -1
- data/test/node/test_emission.rb +1 -1
- data/test/node/test_entrance.rb +1 -1
- data/test/node/test_farm.rb +1 -1
- data/test/node/test_farmers.rb +1 -1
- data/test/node/test_front.rb +2 -1
- data/test/node/test_nodup_entrance.rb +1 -1
- data/test/node/test_safe_entrance.rb +1 -1
- data/test/node/test_spread_entrance.rb +1 -1
- data/test/node/test_sync_entrance.rb +1 -1
- data/test/node/test_trace.rb +1 -1
- data/test/test__helper.rb +16 -2
- data/test/test_age.rb +1 -1
- data/test/test_amount.rb +1 -1
- data/test/test_cached_wallets.rb +1 -1
- data/test/test_copies.rb +1 -1
- data/test/test_dir_items.rb +2 -2
- data/test/test_gem.rb +1 -1
- data/test/test_hexnum.rb +1 -1
- data/test/test_http.rb +1 -1
- data/test/test_id.rb +1 -1
- data/test/test_key.rb +1 -1
- data/test/test_log.rb +1 -1
- data/test/test_metronome.rb +1 -1
- data/test/test_patch.rb +1 -1
- data/test/test_prefixes.rb +1 -1
- data/test/test_remotes.rb +1 -1
- data/test/test_signature.rb +1 -1
- data/test/test_size.rb +1 -1
- data/test/test_sync_wallets.rb +1 -1
- data/test/test_tax.rb +1 -1
- data/test/test_tree_wallets.rb +1 -1
- data/test/test_txn.rb +1 -1
- data/test/test_upgrades.rb +1 -1
- data/test/test_verbose_thread.rb +1 -1
- data/test/test_version.rb +1 -1
- data/test/test_wallet.rb +1 -1
- data/test/test_wallets.rb +1 -1
- data/test/test_zold.rb +5 -4
- data/test/upgrades/test_protocol_up.rb +1 -1
- data/zold.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51c68760612879b65f070ac7b07fc10849c687fa1dd69000a0d5128a0e6f414d
|
4
|
+
data.tar.gz: 2e533397cfcfab38a17237d92f1c10e58262622154eca4abd0678cead502d20a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9981735a709e7f33ca4e532d0585b32c6c8ef55bf0a57f596bae45fd64dd823b15b156275e96dfef80259cca8f4b3277521a08c7bb14190f946011e315559a63
|
7
|
+
data.tar.gz: 1848c9278157073de768bca4d137cc12e06d547d9c82d5cf7a60a9868a36482310cef92f4718dec17702c7a7f4b7eeb5bd2f10b79d241c6d0b0a4a17d82e1bb1
|
data/bin/zold
CHANGED
@@ -27,6 +27,7 @@ start = Time.now
|
|
27
27
|
|
28
28
|
require 'slop'
|
29
29
|
require 'rainbow'
|
30
|
+
require 'backtrace'
|
30
31
|
require_relative '../lib/zold'
|
31
32
|
require_relative '../lib/zold/version'
|
32
33
|
require_relative '../lib/zold/wallet'
|
@@ -166,7 +167,7 @@ Available options:"
|
|
166
167
|
|
167
168
|
wallets = Zold::SyncWallets.new(
|
168
169
|
Zold::CachedWallets.new(
|
169
|
-
command == 'node' ? Zold::TreeWallets.new(
|
170
|
+
command == 'node' ? Zold::TreeWallets.new(home) : Zold::Wallets.new(home)
|
170
171
|
),
|
171
172
|
log: log
|
172
173
|
)
|
@@ -245,7 +246,7 @@ Available options:"
|
|
245
246
|
end
|
246
247
|
rescue StandardError => ex
|
247
248
|
log.error("#{ex.message} (#{ex.class.name})")
|
248
|
-
puts(ex
|
249
|
+
puts(Backtrace.new(ex)) if opts['trace']
|
249
250
|
exit -1
|
250
251
|
end
|
251
252
|
|
data/lib/zold/commands/create.rb
CHANGED
@@ -46,7 +46,7 @@ Available options:"
|
|
46
46
|
o.string '--public-key',
|
47
47
|
'The location of RSA public key (default: ~/.ssh/id_rsa.pub)',
|
48
48
|
require: true,
|
49
|
-
default: '~/.ssh/id_rsa.pub'
|
49
|
+
default: File.expand_path('~/.ssh/id_rsa.pub')
|
50
50
|
o.string '--network',
|
51
51
|
"The name of the network (default: #{Wallet::MAIN_NETWORK}",
|
52
52
|
require: true,
|
data/lib/zold/commands/pay.rb
CHANGED
@@ -52,7 +52,7 @@ Available options:"
|
|
52
52
|
o.string '--private-key',
|
53
53
|
'The location of RSA private key (default: ~/.ssh/id_rsa)',
|
54
54
|
require: true,
|
55
|
-
default: '~/.ssh/id_rsa'
|
55
|
+
default: File.expand_path('~/.ssh/id_rsa')
|
56
56
|
o.bool '--force',
|
57
57
|
'Ignore all validations',
|
58
58
|
default: false
|
data/lib/zold/endless.rb
CHANGED
data/lib/zold/gem.rb
CHANGED
@@ -34,7 +34,7 @@ module Zold
|
|
34
34
|
class Gem
|
35
35
|
def last_version
|
36
36
|
JsonPage.new(
|
37
|
-
Http.new(uri: 'https://rubygems.org/api/v1/versions/zold/latest.json'
|
37
|
+
Http.new(uri: 'https://rubygems.org/api/v1/versions/zold/latest.json').get.body
|
38
38
|
).to_hash['version']
|
39
39
|
rescue StandardError => _
|
40
40
|
'0.0.0'
|
data/lib/zold/node/farm.rb
CHANGED
@@ -128,17 +128,24 @@ module Zold
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
end
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
cleanup
|
135
|
-
|
136
|
-
|
131
|
+
unless threads.zero?
|
132
|
+
ready = false
|
133
|
+
@threads << Thread.new do
|
134
|
+
Endless.new('cleanup', log: @log).run do
|
135
|
+
cleanup(host, port, strength, threads)
|
136
|
+
ready = true
|
137
|
+
sleep(1)
|
138
|
+
end
|
137
139
|
end
|
140
|
+
loop { break if ready }
|
138
141
|
end
|
139
|
-
|
142
|
+
if @threads.empty?
|
143
|
+
cleanup(host, port, strength, threads)
|
144
|
+
@log.info('Farm started with no threads (there will be no score)')
|
145
|
+
else
|
146
|
+
@log.info("Farm started with #{@threads.count} threads (one for cleanup) \
|
140
147
|
at #{host}:#{port}, strength is #{strength}")
|
141
|
-
|
148
|
+
end
|
142
149
|
begin
|
143
150
|
yield(self)
|
144
151
|
ensure
|
data/lib/zold/node/front.rb
CHANGED
@@ -29,6 +29,7 @@ require 'sinatra/base'
|
|
29
29
|
require 'concurrent'
|
30
30
|
require 'backtrace'
|
31
31
|
require 'zache'
|
32
|
+
require 'posix/spawn'
|
32
33
|
require_relative '../version'
|
33
34
|
require_relative '../size'
|
34
35
|
require_relative '../wallet'
|
@@ -143,6 +144,11 @@ in #{Age.new(@start, limit: 1)}")
|
|
143
144
|
settings.version
|
144
145
|
end
|
145
146
|
|
147
|
+
get '/protocol' do
|
148
|
+
content_type('text/plain')
|
149
|
+
settings.protocol.to_s
|
150
|
+
end
|
151
|
+
|
146
152
|
get '/pid' do
|
147
153
|
content_type('text/plain')
|
148
154
|
Process.pid.to_s
|
@@ -405,7 +411,7 @@ in #{Age.new(@start, limit: 1)}")
|
|
405
411
|
|
406
412
|
get '/ps' do
|
407
413
|
content_type('text/plain')
|
408
|
-
|
414
|
+
processes.join("\n")
|
409
415
|
end
|
410
416
|
|
411
417
|
not_found do
|
@@ -455,10 +461,14 @@ in #{Age.new(@start, limit: 1)}")
|
|
455
461
|
|
456
462
|
def processes_count
|
457
463
|
settings.zache.get(:processes, lifetime: settings.network == Wallet::MAIN_NETWORK ? 60 : 0) do
|
458
|
-
|
464
|
+
processes.count
|
459
465
|
end
|
460
466
|
end
|
461
467
|
|
468
|
+
def processes
|
469
|
+
POSIX::Spawn::Child.new('ps', 'ax').out.split("\n").select { |t| t.include?('zold') }
|
470
|
+
end
|
471
|
+
|
462
472
|
def score
|
463
473
|
settings.zache.get(:score, lifetime: settings.network == Wallet::MAIN_NETWORK ? 60 : 0) do
|
464
474
|
b = settings.farm.best
|
data/lib/zold/version.rb
CHANGED
@@ -31,7 +31,7 @@ require_relative '../../../lib/zold/commands/routines/reconnect.rb'
|
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
32
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
33
|
# License:: MIT
|
34
|
-
class TestReconnect <
|
34
|
+
class TestReconnect < Zold::Test
|
35
35
|
def test_reconnects
|
36
36
|
Dir.mktmpdir do |dir|
|
37
37
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes.csv'))
|
@@ -32,7 +32,7 @@ require_relative '../../../lib/zold/node/entrance.rb'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestSpread <
|
35
|
+
class TestSpread < Zold::Test
|
36
36
|
def test_spread_wallets
|
37
37
|
FakeHome.new(log: test_log).run do |home|
|
38
38
|
5.times { home.create_wallet }
|
data/test/commands/test_alias.rb
CHANGED
@@ -5,7 +5,7 @@ require_relative '../test__helper'
|
|
5
5
|
require_relative '../fake_home'
|
6
6
|
require_relative '../../lib/zold/commands/alias'
|
7
7
|
|
8
|
-
class TestAlias <
|
8
|
+
class TestAlias < Zold::Test
|
9
9
|
# alias set <wallet> <alias>
|
10
10
|
# @todo #322:30min Implement the set command and unskip this test.
|
11
11
|
# The syntax is already documented in the alias command in the help.
|
@@ -29,7 +29,7 @@ require_relative '../../lib/zold/commands/calculate'
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
30
30
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
31
31
|
# License:: MIT
|
32
|
-
class TestCalculate <
|
32
|
+
class TestCalculate < Zold::Test
|
33
33
|
def test_calculates_score
|
34
34
|
score = Zold::Calculate.new(log: test_log).run(
|
35
35
|
['score', '--strength=2', '--max=8', '--invoice=NOSUFFIX@ffffffffffffffff']
|
data/test/commands/test_clean.rb
CHANGED
@@ -32,7 +32,7 @@ require_relative '../../lib/zold/commands/clean'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestClean <
|
35
|
+
class TestClean < Zold::Test
|
36
36
|
def test_cleans_copies
|
37
37
|
FakeHome.new(log: test_log).run do |home|
|
38
38
|
wallet = home.create_wallet
|
@@ -31,7 +31,7 @@ require_relative '../../lib/zold/commands/create'
|
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
32
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
33
|
# License:: MIT
|
34
|
-
class TestCreate <
|
34
|
+
class TestCreate < Zold::Test
|
35
35
|
def test_creates_wallet
|
36
36
|
Dir.mktmpdir do |dir|
|
37
37
|
wallets = Zold::Wallets.new(dir)
|
data/test/commands/test_diff.rb
CHANGED
@@ -38,7 +38,7 @@ require_relative '../../lib/zold/commands/diff'
|
|
38
38
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
39
39
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
40
40
|
# License:: MIT
|
41
|
-
class TestDiff <
|
41
|
+
class TestDiff < Zold::Test
|
42
42
|
def test_diff_with_copies
|
43
43
|
FakeHome.new(log: test_log).run do |home|
|
44
44
|
wallet = home.create_wallet
|
data/test/commands/test_fetch.rb
CHANGED
@@ -40,7 +40,7 @@ require_relative '../../lib/zold/commands/fetch'
|
|
40
40
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
41
41
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
42
42
|
# License:: MIT
|
43
|
-
class TestFetch <
|
43
|
+
class TestFetch < Zold::Test
|
44
44
|
def test_fetches_wallet
|
45
45
|
FakeHome.new(log: test_log).run do |home|
|
46
46
|
wallet = home.create_wallet
|
@@ -33,7 +33,7 @@ require_relative '../../lib/zold/commands/invoice'
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
34
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
35
35
|
# License:: MIT
|
36
|
-
class TestInvoice <
|
36
|
+
class TestInvoice < Zold::Test
|
37
37
|
def test_generates_invoice
|
38
38
|
Dir.mktmpdir do |dir|
|
39
39
|
id = Zold::Id.new
|
data/test/commands/test_list.rb
CHANGED
@@ -32,7 +32,7 @@ require_relative '../../lib/zold/commands/list'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestList <
|
35
|
+
class TestList < Zold::Test
|
36
36
|
def test_lists_wallets_with_balances
|
37
37
|
Dir.mktmpdir do |dir|
|
38
38
|
id = Zold::Id.new
|
data/test/commands/test_merge.rb
CHANGED
@@ -40,7 +40,7 @@ require_relative '../../lib/zold/commands/pay'
|
|
40
40
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
41
41
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
42
42
|
# License:: MIT
|
43
|
-
class TestMerge <
|
43
|
+
class TestMerge < Zold::Test
|
44
44
|
def test_merges_wallet
|
45
45
|
FakeHome.new(log: test_log).run do |home|
|
46
46
|
wallet = home.create_wallet
|
data/test/commands/test_node.rb
CHANGED
@@ -38,7 +38,7 @@ require_relative '../node/fake_node'
|
|
38
38
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
39
39
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
40
40
|
# License:: MIT
|
41
|
-
class TestNode <
|
41
|
+
class TestNode < Zold::Test
|
42
42
|
# @todo #306:30min This test is failing from time to time
|
43
43
|
# We should find a way to check that tests involved in thread concurrency
|
44
44
|
# are always working
|
data/test/commands/test_pay.rb
CHANGED
@@ -34,7 +34,7 @@ require_relative '../../lib/zold/commands/pay'
|
|
34
34
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
35
35
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
36
36
|
# License:: MIT
|
37
|
-
class TestPay <
|
37
|
+
class TestPay < Zold::Test
|
38
38
|
def test_sends_from_wallet_to_wallet
|
39
39
|
FakeHome.new(log: test_log).run do |home|
|
40
40
|
source = home.create_wallet
|
@@ -31,7 +31,7 @@ require_relative '../../lib/zold/commands/pay'
|
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
32
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
33
|
# License:: MIT
|
34
|
-
class TestPropagate <
|
34
|
+
class TestPropagate < Zold::Test
|
35
35
|
def test_propagates_wallet
|
36
36
|
FakeHome.new(log: test_log).run do |home|
|
37
37
|
wallet = home.create_wallet
|
data/test/commands/test_pull.rb
CHANGED
@@ -32,7 +32,7 @@ require_relative '../../lib/zold/commands/pull'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestPull <
|
35
|
+
class TestPull < Zold::Test
|
36
36
|
def test_pull_wallet
|
37
37
|
FakeHome.new(log: test_log).run do |home|
|
38
38
|
remotes = home.remotes
|
data/test/commands/test_push.rb
CHANGED
@@ -35,7 +35,7 @@ require_relative '../../lib/zold/commands/push'
|
|
35
35
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
36
36
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
37
37
|
# License:: MIT
|
38
|
-
class TestPush <
|
38
|
+
class TestPush < Zold::Test
|
39
39
|
def test_pushes_wallet
|
40
40
|
FakeHome.new(log: test_log).run do |home|
|
41
41
|
wallet = home.create_wallet
|
@@ -36,7 +36,7 @@ require_relative '../../lib/zold/commands/remote'
|
|
36
36
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
37
37
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
38
38
|
# License:: MIT
|
39
|
-
class TestRemote <
|
39
|
+
class TestRemote < Zold::Test
|
40
40
|
def test_updates_remote
|
41
41
|
Dir.mktmpdir do |dir|
|
42
42
|
remotes = Zold::Remotes.new(file: File.join(dir, 'a/b/c/remotes'))
|
@@ -29,7 +29,7 @@ require_relative '../../lib/zold/commands/remove'
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
30
30
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
31
31
|
# License:: MIT
|
32
|
-
class TestRemove <
|
32
|
+
class TestRemove < Zold::Test
|
33
33
|
def test_removes_one_wallet
|
34
34
|
FakeHome.new(log: test_log).run do |home|
|
35
35
|
wallet = home.create_wallet
|
data/test/commands/test_show.rb
CHANGED
@@ -33,7 +33,7 @@ require_relative '../../lib/zold/commands/show'
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
34
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
35
35
|
# License:: MIT
|
36
|
-
class TestShow <
|
36
|
+
class TestShow < Zold::Test
|
37
37
|
def test_checks_wallet_balance
|
38
38
|
Dir.mktmpdir do |dir|
|
39
39
|
id = Zold::Id.new
|
data/test/commands/test_taxes.rb
CHANGED
@@ -36,7 +36,7 @@ require_relative '../../lib/zold/commands/taxes'
|
|
36
36
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
37
37
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
38
38
|
# License:: MIT
|
39
|
-
class TestTaxes <
|
39
|
+
class TestTaxes < Zold::Test
|
40
40
|
def test_pays_taxes
|
41
41
|
FakeHome.new(log: test_log).run do |home|
|
42
42
|
wallets = home.wallets
|
@@ -32,7 +32,7 @@ require_relative 'fake_entrance'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestAsyncEntrance <
|
35
|
+
class TestAsyncEntrance < Zold::Test
|
36
36
|
def test_renders_json
|
37
37
|
FakeHome.new(log: test_log).run do |home|
|
38
38
|
Zold::AsyncEntrance.new(FakeEntrance.new, home.dir, log: test_log).start do |e|
|
data/test/node/test_emission.rb
CHANGED
@@ -26,7 +26,7 @@ require_relative '../test__helper'
|
|
26
26
|
require_relative '../../lib/zold/node/emission'
|
27
27
|
require_relative '../../lib/zold/amount'
|
28
28
|
|
29
|
-
class EmissionTest <
|
29
|
+
class EmissionTest < Zold::Test
|
30
30
|
def test_emission
|
31
31
|
(1..10).each do |year|
|
32
32
|
FakeHome.new(log: test_log).run do |home|
|
data/test/node/test_entrance.rb
CHANGED
@@ -35,7 +35,7 @@ require_relative '../../lib/zold/commands/pay'
|
|
35
35
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
36
36
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
37
37
|
# License:: MIT
|
38
|
-
class TestEntrance <
|
38
|
+
class TestEntrance < Zold::Test
|
39
39
|
def test_pushes_wallet
|
40
40
|
sid = Zold::Id::ROOT
|
41
41
|
tid = Zold::Id.new
|
data/test/node/test_farm.rb
CHANGED
@@ -27,7 +27,7 @@ require_relative '../test__helper'
|
|
27
27
|
require_relative '../../lib/zold/log'
|
28
28
|
require_relative '../../lib/zold/node/farm'
|
29
29
|
|
30
|
-
class FarmTest <
|
30
|
+
class FarmTest < Zold::Test
|
31
31
|
def test_renders_in_json
|
32
32
|
Dir.mktmpdir do |dir|
|
33
33
|
farm = Zold::Farm.new('NOPREFIX6@ffffffffffffffff', File.join(dir, 'f'), log: test_log)
|
data/test/node/test_farmers.rb
CHANGED
@@ -26,7 +26,7 @@ require 'zold/score'
|
|
26
26
|
require_relative '../test__helper'
|
27
27
|
require_relative '../../lib/zold/node/farmers'
|
28
28
|
|
29
|
-
class FarmersTest <
|
29
|
+
class FarmersTest < Zold::Test
|
30
30
|
def test_calculates_next_score
|
31
31
|
before = Zold::Score.new(host: 'some-host', port: 9999, invoice: 'NOPREFIX4@ffffffffffffffff', strength: 3)
|
32
32
|
farmer = Zold::Farmers::Spawn.new(log: test_log)
|
data/test/node/test_front.rb
CHANGED
@@ -33,7 +33,7 @@ require_relative '../../lib/zold/http'
|
|
33
33
|
require_relative '../../lib/zold/age'
|
34
34
|
require_relative '../../lib/zold/json_page'
|
35
35
|
|
36
|
-
class FrontTest <
|
36
|
+
class FrontTest < Zold::Test
|
37
37
|
def app
|
38
38
|
Zold::Front
|
39
39
|
end
|
@@ -63,6 +63,7 @@ class FrontTest < Minitest::Test
|
|
63
63
|
'/',
|
64
64
|
'/remotes',
|
65
65
|
'/version',
|
66
|
+
'/protocol',
|
66
67
|
'/farm',
|
67
68
|
'/metronome',
|
68
69
|
'/score',
|
@@ -31,7 +31,7 @@ require_relative 'fake_entrance'
|
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
32
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
33
|
# License:: MIT
|
34
|
-
class TestAsyncEntrance <
|
34
|
+
class TestAsyncEntrance < Zold::Test
|
35
35
|
def test_ignores_dup
|
36
36
|
FakeHome.new(log: test_log).run do |home|
|
37
37
|
wallet = home.create_wallet
|
@@ -33,7 +33,7 @@ require_relative 'fake_entrance'
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
34
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
35
35
|
# License:: MIT
|
36
|
-
class TestSafeEntrance <
|
36
|
+
class TestSafeEntrance < Zold::Test
|
37
37
|
def test_rejects_wallet_with_negative_balance
|
38
38
|
FakeHome.new(log: test_log).run do |home|
|
39
39
|
wallet = home.create_wallet
|
@@ -33,7 +33,7 @@ require_relative 'fake_entrance'
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
34
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
35
35
|
# License:: MIT
|
36
|
-
class TestSpreadEntrance <
|
36
|
+
class TestSpreadEntrance < Zold::Test
|
37
37
|
def test_renders_json
|
38
38
|
FakeHome.new(log: test_log).run do |home|
|
39
39
|
wallet = home.create_wallet(Zold::Id.new)
|
@@ -30,7 +30,7 @@ require_relative 'fake_entrance'
|
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
31
31
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
32
32
|
# License:: MIT
|
33
|
-
class TestSyncEntrance <
|
33
|
+
class TestSyncEntrance < Zold::Test
|
34
34
|
def test_renders_json
|
35
35
|
FakeHome.new(log: test_log).run do
|
36
36
|
Zold::SyncEntrance.new(FakeEntrance.new, log: test_log).start do |e|
|
data/test/node/test_trace.rb
CHANGED
@@ -24,7 +24,7 @@ require 'minitest/autorun'
|
|
24
24
|
require_relative '../test__helper'
|
25
25
|
require_relative '../../lib/zold/node/trace'
|
26
26
|
|
27
|
-
class TraceTest <
|
27
|
+
class TraceTest < Zold::Test
|
28
28
|
def test_records_log_lines
|
29
29
|
trace = Zold::Trace.new(test_log, 2)
|
30
30
|
trace.error('This should not be visible')
|
data/test/test__helper.rb
CHANGED
@@ -23,7 +23,9 @@
|
|
23
23
|
gem 'openssl'
|
24
24
|
require 'openssl'
|
25
25
|
require 'minitest/autorun'
|
26
|
+
require 'minitest/hooks/test'
|
26
27
|
require 'concurrent'
|
28
|
+
require 'timeout'
|
27
29
|
|
28
30
|
STDOUT.sync = true
|
29
31
|
|
@@ -36,8 +38,20 @@ if ENV['CI'] == 'true'
|
|
36
38
|
SimpleCov.formatter = SimpleCov::Formatter::Codecov
|
37
39
|
end
|
38
40
|
|
39
|
-
module
|
40
|
-
class Test
|
41
|
+
module Zold
|
42
|
+
class Test < Minitest::Test
|
43
|
+
include Minitest::Hooks
|
44
|
+
|
45
|
+
# We need this in order to make sure any test is faster than a minute. This
|
46
|
+
# should help spotting tests that hang out sometimes. The number of seconds
|
47
|
+
# to wait can be increased, but try to make it as little as possible,
|
48
|
+
# in order to catch problems ealier.
|
49
|
+
def around
|
50
|
+
Timeout.timeout(120) do
|
51
|
+
super
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
41
55
|
def assert_wait(max: 30)
|
42
56
|
assert_equal_wait(true, max: max) { yield }
|
43
57
|
end
|
data/test/test_age.rb
CHANGED
@@ -27,7 +27,7 @@ require_relative '../lib/zold/age'
|
|
27
27
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
28
28
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
29
29
|
# License:: MIT
|
30
|
-
class TestAge <
|
30
|
+
class TestAge < Zold::Test
|
31
31
|
def test_prints_age
|
32
32
|
assert_equal('10m', Zold::Age.new(Time.now - 10 * 60).to_s)
|
33
33
|
assert_equal('5.5s', Zold::Age.new(Time.now - 5.5).to_s)
|
data/test/test_amount.rb
CHANGED
@@ -27,7 +27,7 @@ require_relative '../lib/zold/amount'
|
|
27
27
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
28
28
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
29
29
|
# License:: MIT
|
30
|
-
class TestAmount <
|
30
|
+
class TestAmount < Zold::Test
|
31
31
|
def test_parses_zld
|
32
32
|
amount = Zold::Amount.new(zld: 14.95)
|
33
33
|
assert(
|
data/test/test_cached_wallets.rb
CHANGED
@@ -33,7 +33,7 @@ require_relative '../lib/zold/amount'
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
34
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
35
35
|
# License:: MIT
|
36
|
-
class TestCachedWallets <
|
36
|
+
class TestCachedWallets < Zold::Test
|
37
37
|
def test_adds_wallet
|
38
38
|
FakeHome.new(log: test_log).run do |home|
|
39
39
|
wallets = Zold::CachedWallets.new(home.wallets)
|
data/test/test_copies.rb
CHANGED
@@ -35,7 +35,7 @@ require_relative '../lib/zold/wallet'
|
|
35
35
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
36
36
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
37
37
|
# License:: MIT
|
38
|
-
class TestCopies <
|
38
|
+
class TestCopies < Zold::Test
|
39
39
|
def test_adds_and_removes_copies
|
40
40
|
Dir.mktmpdir do |dir|
|
41
41
|
copies = Zold::Copies.new(File.join(dir, 'my/a/copies'), log: test_log)
|
data/test/test_dir_items.rb
CHANGED
@@ -32,12 +32,12 @@ require_relative '../lib/zold/dir_items'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestDirItems <
|
35
|
+
class TestDirItems < Zold::Test
|
36
36
|
def test_intensive_write_in_threads
|
37
37
|
Dir.mktmpdir do |dir|
|
38
38
|
file = File.join(dir, 'hey.txt')
|
39
39
|
back = Thread.start do
|
40
|
-
Endless.new('test-diritems', log: test_log).run do
|
40
|
+
Zold::Endless.new('test-diritems', log: test_log).run do
|
41
41
|
Zold::DirItems.new(dir).fetch
|
42
42
|
end
|
43
43
|
end
|
data/test/test_gem.rb
CHANGED
@@ -4,7 +4,7 @@ require_relative '../lib/zold/gem'
|
|
4
4
|
require 'webmock/minitest'
|
5
5
|
require 'minitest/autorun'
|
6
6
|
|
7
|
-
class TestGem <
|
7
|
+
class TestGem < Zold::Test
|
8
8
|
def test_last_version
|
9
9
|
version = (1..3).map { rand(9).to_s } .join('.')
|
10
10
|
stub_request(:get, 'https://rubygems.org/api/v1/versions/zold/latest.json').to_return(
|
data/test/test_hexnum.rb
CHANGED
@@ -27,7 +27,7 @@ require_relative '../lib/zold/hexnum'
|
|
27
27
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
28
28
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
29
29
|
# License:: MIT
|
30
|
-
class TestHexnum <
|
30
|
+
class TestHexnum < Zold::Test
|
31
31
|
def test_prints_and_parses
|
32
32
|
[0, 1, 3, 5, 7, 13, 6447, 897_464, -1, -3, -7584, -900_098].each do |n|
|
33
33
|
assert_equal(n, Zold::Hexnum.parse(Zold::Hexnum.new(n, 6).to_s).to_i)
|
data/test/test_http.rb
CHANGED
@@ -31,7 +31,7 @@ require_relative '../lib/zold/http'
|
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
32
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
33
|
# License:: MIT
|
34
|
-
class TestHttp <
|
34
|
+
class TestHttp < Zold::Test
|
35
35
|
def test_pings_broken_uri
|
36
36
|
stub_request(:get, 'http://bad-host/').to_return(status: 500)
|
37
37
|
res = Zold::Http.new(uri: 'http://bad-host/').get
|
data/test/test_id.rb
CHANGED
@@ -28,7 +28,7 @@ require_relative '../lib/zold/id'
|
|
28
28
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
29
29
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
30
30
|
# License:: MIT
|
31
|
-
class TestId <
|
31
|
+
class TestId < Zold::Test
|
32
32
|
def test_generates_new_id
|
33
33
|
50.times do
|
34
34
|
id = Zold::Id.new
|
data/test/test_key.rb
CHANGED
@@ -29,7 +29,7 @@ require_relative '../lib/zold/key'
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
30
30
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
31
31
|
# License:: MIT
|
32
|
-
class TestKey <
|
32
|
+
class TestKey < Zold::Test
|
33
33
|
def test_reads_public_rsa
|
34
34
|
key = Zold::Key.new(file: 'fixtures/id_rsa.pub')
|
35
35
|
assert(key.to_pub.start_with?('MIICI'))
|
data/test/test_log.rb
CHANGED
@@ -29,7 +29,7 @@ require_relative '../lib/zold/log'
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
30
30
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
31
31
|
# License:: MIT
|
32
|
-
class TestLog <
|
32
|
+
class TestLog < Zold::Test
|
33
33
|
def test_prints_from_many_threads
|
34
34
|
Threads.new(20).assert do
|
35
35
|
test_log.debug('How are you?')
|
data/test/test_metronome.rb
CHANGED
@@ -28,7 +28,7 @@ require_relative '../lib/zold/metronome'
|
|
28
28
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
29
29
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
30
30
|
# License:: MIT
|
31
|
-
class TestMetronome <
|
31
|
+
class TestMetronome < Zold::Test
|
32
32
|
def test_start_and_stop
|
33
33
|
metronome = Zold::Metronome.new(test_log)
|
34
34
|
list = []
|
data/test/test_patch.rb
CHANGED
@@ -33,7 +33,7 @@ require_relative '../lib/zold/patch'
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
34
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
35
35
|
# License:: MIT
|
36
|
-
class TestPatch <
|
36
|
+
class TestPatch < Zold::Test
|
37
37
|
def test_builds_patch
|
38
38
|
FakeHome.new(log: test_log).run do |home|
|
39
39
|
first = home.create_wallet
|
data/test/test_prefixes.rb
CHANGED
@@ -32,7 +32,7 @@ require_relative '../lib/zold/prefixes'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestPrefixes <
|
35
|
+
class TestPrefixes < Zold::Test
|
36
36
|
def test_creates_and_validates
|
37
37
|
FakeHome.new(log: test_log).run do |home|
|
38
38
|
wallet = home.create_wallet
|
data/test/test_remotes.rb
CHANGED
@@ -34,7 +34,7 @@ require_relative '../lib/zold/verbose_thread'
|
|
34
34
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
35
35
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
36
36
|
# License:: MIT
|
37
|
-
class TestRemotes <
|
37
|
+
class TestRemotes < Zold::Test
|
38
38
|
def test_adds_remotes
|
39
39
|
Dir.mktmpdir do |dir|
|
40
40
|
file = File.join(dir, 'remotes')
|
data/test/test_signature.rb
CHANGED
@@ -32,7 +32,7 @@ require_relative '../lib/zold/signature'
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
33
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
34
34
|
# License:: MIT
|
35
|
-
class TestSignature <
|
35
|
+
class TestSignature < Zold::Test
|
36
36
|
def test_signs_and_validates
|
37
37
|
pvt = Zold::Key.new(file: 'fixtures/id_rsa')
|
38
38
|
pub = Zold::Key.new(file: 'fixtures/id_rsa.pub')
|
data/test/test_size.rb
CHANGED
@@ -27,7 +27,7 @@ require_relative '../lib/zold/size'
|
|
27
27
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
28
28
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
29
29
|
# License:: MIT
|
30
|
-
class TestSize <
|
30
|
+
class TestSize < Zold::Test
|
31
31
|
def test_prints_size
|
32
32
|
assert_equal('?', Zold::Size.new(nil).to_s)
|
33
33
|
assert_equal('10b', Zold::Size.new(10).to_s)
|
data/test/test_sync_wallets.rb
CHANGED
@@ -35,7 +35,7 @@ require_relative '../lib/zold/amount'
|
|
35
35
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
36
36
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
37
37
|
# License:: MIT
|
38
|
-
class TestSyncWallets <
|
38
|
+
class TestSyncWallets < Zold::Test
|
39
39
|
def test_adds_wallet
|
40
40
|
FakeHome.new(log: test_log).run do |home|
|
41
41
|
wallets = home.wallets
|
data/test/test_tax.rb
CHANGED
@@ -37,7 +37,7 @@ require_relative '../lib/zold/prefixes'
|
|
37
37
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
38
38
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
39
39
|
# License:: MIT
|
40
|
-
class TestTax <
|
40
|
+
class TestTax < Zold::Test
|
41
41
|
def test_print_fee
|
42
42
|
test_log.info("Fee in zents: #{Zold::Tax::FEE.to_i}")
|
43
43
|
end
|
data/test/test_tree_wallets.rb
CHANGED
@@ -31,7 +31,7 @@ require_relative '../lib/zold/tree_wallets'
|
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
32
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
33
|
# License:: MIT
|
34
|
-
class TestTreeWallets <
|
34
|
+
class TestTreeWallets < Zold::Test
|
35
35
|
def test_adds_wallet
|
36
36
|
Dir.mktmpdir do |dir|
|
37
37
|
wallets = Zold::TreeWallets.new(dir)
|
data/test/test_txn.rb
CHANGED
@@ -31,7 +31,7 @@ require_relative '../lib/zold/amount'
|
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
32
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
33
|
# License:: MIT
|
34
|
-
class TestTxn <
|
34
|
+
class TestTxn < Zold::Test
|
35
35
|
def test_prints_and_parses
|
36
36
|
time = Time.now
|
37
37
|
txn = Zold::Txn.parse(
|
data/test/test_upgrades.rb
CHANGED
@@ -29,7 +29,7 @@ require_relative '../lib/zold/version_file'
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
30
30
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
31
31
|
# License:: MIT
|
32
|
-
class TestUpgrades <
|
32
|
+
class TestUpgrades < Zold::Test
|
33
33
|
# @todo #327:30min Uncomment, when you're ready to work on upgrade manager's
|
34
34
|
# test case of absent version file. Start with running the test first.
|
35
35
|
def test_no_version_file_is_ok
|
data/test/test_verbose_thread.rb
CHANGED
@@ -28,7 +28,7 @@ require_relative '../lib/zold/verbose_thread'
|
|
28
28
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
29
29
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
30
30
|
# License:: MIT
|
31
|
-
class TestVerboseThread <
|
31
|
+
class TestVerboseThread < Zold::Test
|
32
32
|
def test_exceptions_are_logged
|
33
33
|
assert_raises RuntimeError do
|
34
34
|
Zold::VerboseThread.new(Zold::Log::Quiet.new).run do
|
data/test/test_version.rb
CHANGED
data/test/test_wallet.rb
CHANGED
@@ -34,7 +34,7 @@ require_relative '../lib/zold/commands/pay'
|
|
34
34
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
35
35
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
36
36
|
# License:: MIT
|
37
|
-
class TestWallet <
|
37
|
+
class TestWallet < Zold::Test
|
38
38
|
def test_reads_empty_wallet
|
39
39
|
FakeHome.new(log: test_log).run do |home|
|
40
40
|
wallet = home.create_wallet
|
data/test/test_wallets.rb
CHANGED
@@ -33,7 +33,7 @@ require_relative '../lib/zold/amount'
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
34
34
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
35
35
|
# License:: MIT
|
36
|
-
class TestWallets <
|
36
|
+
class TestWallets < Zold::Test
|
37
37
|
def test_adds_wallet
|
38
38
|
FakeHome.new(log: test_log).run do |home|
|
39
39
|
wallets = home.wallets
|
data/test/test_zold.rb
CHANGED
@@ -26,15 +26,16 @@ require 'open3'
|
|
26
26
|
require 'English'
|
27
27
|
require_relative 'test__helper'
|
28
28
|
require_relative '../lib/zold/version'
|
29
|
+
require_relative '../lib/zold/age'
|
29
30
|
|
30
31
|
# Zold main module test.
|
31
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
33
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
33
34
|
# License:: MIT
|
34
|
-
class TestZold <
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
class TestZold < Zold::Test
|
36
|
+
Dir.new('fixtures/scripts').select { |f| f =~ /\.sh$/ && !f.start_with?('_') }.each do |f|
|
37
|
+
# next unless f == 'push-and-pull.sh'
|
38
|
+
define_method("test_script_#{f.gsub(/[^a-z]/, '_')}") do
|
38
39
|
start = Time.now
|
39
40
|
test_log.debug("\n\n#{f} running...")
|
40
41
|
Dir.mktmpdir do |dir|
|
@@ -29,7 +29,7 @@ require_relative '../fake_home'
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
30
30
|
# Copyright:: Copyright (c) 2018 Yegor Bugayenko
|
31
31
|
# License:: MIT
|
32
|
-
class TestProtocolUp <
|
32
|
+
class TestProtocolUp < Zold::Test
|
33
33
|
def test_upgrades_protocol_in_wallet
|
34
34
|
FakeHome.new(log: test_log).run do |home|
|
35
35
|
id = home.create_wallet.id
|
data/zold.gemspec
CHANGED
@@ -79,6 +79,7 @@ and suggests a different architecture for digital wallet maintenance.'
|
|
79
79
|
s.add_runtime_dependency 'zold-score', '~>0'
|
80
80
|
s.add_development_dependency 'codecov', '~>0'
|
81
81
|
s.add_development_dependency 'minitest', '~>5'
|
82
|
+
s.add_development_dependency 'minitest-hooks', '~>1'
|
82
83
|
s.add_development_dependency 'random-port', '~>0'
|
83
84
|
s.add_development_dependency 'rdoc', '~>4'
|
84
85
|
s.add_development_dependency 'rspec-rails', '~>3'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|
@@ -360,6 +360,20 @@ dependencies:
|
|
360
360
|
- - "~>"
|
361
361
|
- !ruby/object:Gem::Version
|
362
362
|
version: '5'
|
363
|
+
- !ruby/object:Gem::Dependency
|
364
|
+
name: minitest-hooks
|
365
|
+
requirement: !ruby/object:Gem::Requirement
|
366
|
+
requirements:
|
367
|
+
- - "~>"
|
368
|
+
- !ruby/object:Gem::Version
|
369
|
+
version: '1'
|
370
|
+
type: :development
|
371
|
+
prerelease: false
|
372
|
+
version_requirements: !ruby/object:Gem::Requirement
|
373
|
+
requirements:
|
374
|
+
- - "~>"
|
375
|
+
- !ruby/object:Gem::Version
|
376
|
+
version: '1'
|
363
377
|
- !ruby/object:Gem::Dependency
|
364
378
|
name: random-port
|
365
379
|
requirement: !ruby/object:Gem::Requirement
|