Class: MinerMover::Worker
- Inherits:
-
Object
- Object
- MinerMover::Worker
- Defined in:
- lib/miner_mover/worker.rb
Instance Attribute Summary collapse
-
#debugging ⇒ Object
Returns the value of attribute debugging.
-
#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
- #debug(msg) ⇒ Object
- #id ⇒ Object
-
#initialize(variance: 0, logging: false, debugging: 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, debugging: false, timer: nil) ⇒ Worker
Returns a new instance of Worker.
29 30 31 32 33 34 |
# File 'lib/miner_mover/worker.rb', line 29 def initialize(variance: 0, logging: false, debugging: false, timer: nil) @variance = variance @logging = logging @debugging = debugging @timer = timer || Timer.new end |
Instance Attribute Details
#debugging ⇒ Object
Returns the value of attribute debugging.
26 27 28 |
# File 'lib/miner_mover/worker.rb', line 26 def debugging @debugging end |
#logging ⇒ Object
Returns the value of attribute logging.
26 27 28 |
# File 'lib/miner_mover/worker.rb', line 26 def logging @logging end |
#timer ⇒ Object (readonly)
Returns the value of attribute timer.
27 28 29 |
# File 'lib/miner_mover/worker.rb', line 27 def timer @timer end |
#variance ⇒ Object
Returns the value of attribute variance.
26 27 28 |
# File 'lib/miner_mover/worker.rb', line 26 def variance @variance end |
Instance Method Details
#debug(msg) ⇒ Object
56 57 58 |
# File 'lib/miner_mover/worker.rb', line 56 def debug msg @debugging and MinerMover.log @timer, self.id, msg end |
#id ⇒ Object
36 37 38 |
# File 'lib/miner_mover/worker.rb', line 36 def id self.object_id.to_s.rjust(8, '0') end |
#log(msg) ⇒ Object
52 53 54 |
# File 'lib/miner_mover/worker.rb', line 52 def log msg @logging and MinerMover.log @timer, self.id, msg end |
#state ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/miner_mover/worker.rb', line 40 def state { id: self.id, logging: @logging, debugging: @debugging, timer: @timer.elapsed_ms.round, variance: @variance } end |
#to_s ⇒ Object
48 49 50 |
# File 'lib/miner_mover/worker.rb', line 48 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)
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/miner_mover/worker.rb', line 65 def varied n case @variance when 0 n when 1..3 MinerMover.randomize(n, 3 - @variance) else raise "unexpected variance: #{@variance.inspect}" end end |