zold 0.10.13 → 0.10.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6232c5057d899ff2c3600af61ca53b872a01c79
4
- data.tar.gz: 5ad79a8d968e3e03fa70c3955bfe813c1c493bec
3
+ metadata.gz: 7b6885918dc96ed832bc14a1a5cb493a0bc04ebf
4
+ data.tar.gz: 62a57a666504eb1d24d1d3ff0cfd25de6eb0796e
5
5
  SHA512:
6
- metadata.gz: '01845774b4f1783571f47097513d006cbb670da6e0ca040df72039092cdafabd2e588bc470932eb8ee4bb84f423d52f4eabaa5a9c0ab353937d7ccde37e89e48'
7
- data.tar.gz: 20cca37c6f77efdc6a150e73d574db3c92da458311197c639cc493c7b6f2297f956b90aeada211e44143ee2e7cc7d8ec16e62b870f910888e91406fd4708a1ff
6
+ metadata.gz: ca1e1cea8df3826156440ab23d501cb8f0c61e57c7b6233dd4047b01710aa7006a6530c5950d857490cfcfbde374a180411da02ab178a715e9519301c3a2da62
7
+ data.tar.gz: 5445ed69c2b06eff6dd6e4b5cb4ed6d59062d8937aab48e9226a18ca6db3d57a4cb057341292ae985cf01bc496e692763b4e0f5beb16a260879cf02f3b531f09
@@ -111,7 +111,7 @@ module Zold
111
111
  require_relative 'invoice'
112
112
  invoice = Invoice.new(wallets: wallets, log: @log).run(['invoice', invoice])
113
113
  end
114
- farm = Farm.new(invoice, log: @log)
114
+ farm = Farm.new(invoice, File.join(opts[:home], 'farm'), log: @log)
115
115
  farm.start(
116
116
  opts[:host],
117
117
  opts[:port],
@@ -38,8 +38,9 @@ module Zold
38
38
  end
39
39
 
40
40
  attr_reader :best
41
- def initialize(invoice, log: Log::Quiet.new)
41
+ def initialize(invoice, cache, log: Log::Quiet.new)
42
42
  @log = log
43
+ @cache = cache
43
44
  @invoice = invoice
44
45
  @scores = []
45
46
  @threads = []
@@ -59,9 +60,10 @@ module Zold
59
60
  def start(host, port, strength: 8, threads: 8)
60
61
  @log.debug('Zero-threads farm won\'t score anything!') if threads.zero?
61
62
  @scores = Queue.new
62
- first = Score.new(Time.now, host, port, @invoice, strength: strength)
63
- @best = [first]
64
- @scores << first
63
+ history(host, port, strength).each do |s|
64
+ @best << s
65
+ @scores << s
66
+ end
65
67
  @threads = (1..threads).map do |t|
66
68
  Thread.new do
67
69
  VerboseThread.new(@log).run do
@@ -74,6 +76,7 @@ module Zold
74
76
  @best << s
75
77
  after = @best.map(&:value).max
76
78
  @best.reject! { |b| b.value < after }
79
+ File.write(@cache, @best.map(&:to_s).join("\n"))
77
80
  @log.debug("#{Thread.current.name}: best is #{@best[0]}") if before != after
78
81
  end
79
82
  if @scores.length < 4
@@ -97,5 +100,15 @@ module Zold
97
100
  end
98
101
  @log.debug('Farm stopped')
99
102
  end
103
+
104
+ private
105
+
106
+ def history(host, port, strength)
107
+ if File.exist?(@cache)
108
+ File.readlines(@cache).map { |t| Score.parse(t) }
109
+ else
110
+ [Score.new(Time.now, host, port, @invoice, strength: strength)]
111
+ end
112
+ end
100
113
  end
101
114
  end
data/lib/zold/version.rb CHANGED
@@ -23,5 +23,5 @@
23
23
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  module Zold
26
- VERSION = '0.10.13'.freeze
26
+ VERSION = '0.10.14'.freeze
27
27
  end
@@ -26,10 +26,12 @@ require_relative '../../lib/zold/node/farm'
26
26
 
27
27
  class FarmTest < Minitest::Test
28
28
  def test_makes_best_score_in_background
29
- farm = Zold::Farm.new('NOPREFIX@ffffffffffffffff')
30
- farm.start('localhost', 80, threads: 4, strength: 2)
31
- sleep 0.1 while farm.best.empty? || farm.best[0].value.zero?
32
- assert(farm.best[0].value > 0)
33
- farm.stop
29
+ Dir.mktmpdir 'test' do |dir|
30
+ farm = Zold::Farm.new('NOPREFIX@ffffffffffffffff', File.join(dir, 'f'))
31
+ farm.start('localhost', 80, threads: 4, strength: 2)
32
+ sleep 0.1 while farm.best.empty? || farm.best[0].value.zero?
33
+ assert(farm.best[0].value > 0)
34
+ farm.stop
35
+ end
34
36
  end
35
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.13
4
+ version: 0.10.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko