Module: MinerMover
- Defined in:
- lib/miner_mover.rb,
lib/miner_mover/run.rb,
lib/miner_mover/config.rb,
lib/miner_mover/worker.rb
Defined Under Namespace
Modules: Config, Ore Classes: Miner, Mover, Run, Worker
Class Method Summary collapse
-
.log_fmt(timer, id, msg) ⇒ Object
called by Worker instances, available for general use.
-
.randomize(i, squeeze = 0) ⇒ Object
i - 50% at squeeze 0 i - 25% at squeeze 1, 12.5% at squeeze 2, etc.
- .work(duration, type = :wait, fib = 30) ⇒ Object
Class Method Details
.log_fmt(timer, id, msg) ⇒ Object
called by Worker instances, available for general use
3 4 5 |
# File 'lib/miner_mover.rb', line 3 def self.log_fmt(timer, id, msg) format("%s %s %s", timer.elapsed_display, id, msg) end |
.randomize(i, squeeze = 0) ⇒ Object
i - 50% at squeeze 0 i - 25% at squeeze 1, 12.5% at squeeze 2, etc.
9 10 11 12 13 14 15 16 17 |
# File 'lib/miner_mover.rb', line 9 def self.randomize(i, squeeze = 0) r, base = rand, 0.5 # every squeeze, increase the base closer to 1 and cut the rand in half squeeze.times { |s| r *= 0.5 base += 0.5 ** (s+2) } i * (base + r) end |
.work(duration, type = :wait, fib = 30) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/miner_mover/worker.rb', line 6 def self.work(duration, type = :wait, fib = 30) case type when :wait sleep duration duration when :cpu t = CompSci::Timer.new CompSci::Fibonacci.classic(fib) while t.elapsed < duration t.elapsed when :instant 0 else raise "unknown work type: #{type.inspect}" end end |