Class: MinerMover::Worker
- Inherits:
-
Object
- Object
- MinerMover::Worker
- Defined in:
- lib/miner_mover/worker.rb
Instance Attribute Summary collapse
-
#logging ⇒ Object
Returns the value of attribute logging.
-
#timer ⇒ Object
readonly
Returns the value of attribute timer.
-
#variance ⇒ Object
Returns the value of attribute variance.
Instance Method Summary collapse
- #id ⇒ Object
-
#initialize(variance: 0, logging: false, timer: nil) ⇒ Worker
constructor
A new instance of Worker.
- #log(msg) ⇒ Object
- #state ⇒ Object
- #to_s ⇒ Object
-
#varied(n) ⇒ Object
4 levels: 0 - no variance 1 - 12.5% variance (squeeze = 2) 2 - 25% variance (squeeze = 1) 3 - 50% variance (squeeze = 0).
Constructor Details
#initialize(variance: 0, logging: false, timer: nil) ⇒ Worker
Returns a new instance of Worker.
26 27 28 29 30 |
# File 'lib/miner_mover/worker.rb', line 26 def initialize(variance: 0, logging: false, timer: nil) @variance = variance @logging = logging @timer = timer || CompSci::Timer.new end |
Instance Attribute Details
#logging ⇒ Object
Returns the value of attribute logging.
23 24 25 |
# File 'lib/miner_mover/worker.rb', line 23 def logging @logging end |
#timer ⇒ Object (readonly)
Returns the value of attribute timer.
24 25 26 |
# File 'lib/miner_mover/worker.rb', line 24 def timer @timer end |
#variance ⇒ Object
Returns the value of attribute variance.
23 24 25 |
# File 'lib/miner_mover/worker.rb', line 23 def variance @variance end |
Instance Method Details
#id ⇒ Object
32 33 34 |
# File 'lib/miner_mover/worker.rb', line 32 def id self.object_id.to_s.rjust(8, '0') end |
#log(msg) ⇒ Object
47 48 49 |
# File 'lib/miner_mover/worker.rb', line 47 def log msg @logging && puts(MinerMover.log_fmt(@timer, self.id, msg)) end |
#state ⇒ Object
36 37 38 39 40 41 |
# File 'lib/miner_mover/worker.rb', line 36 def state { id: self.id, logging: @logging, timer: @timer.elapsed_ms.round, variance: @variance } end |
#to_s ⇒ Object
43 44 45 |
# File 'lib/miner_mover/worker.rb', line 43 def to_s self.state.to_s end |
#varied(n) ⇒ Object
4 levels: 0 - no variance 1 - 12.5% variance (squeeze = 2) 2 - 25% variance (squeeze = 1) 3 - 50% variance (squeeze = 0)
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/miner_mover/worker.rb', line 56 def varied n case @variance when 0 n when 1..3 MinerMover.randomize(n, 3 - @variance) else raise "unexpected variance: #{@variance.inspect}" end end |