Class: Polling::Engine
- Inherits:
-
Object
- Object
- Polling::Engine
- Defined in:
- lib/polling/engine.rb
Instance Attribute Summary collapse
-
#offset ⇒ Object
Returns the value of attribute offset.
-
#target ⇒ Object
writeonly
Sets the attribute target.
Instance Method Summary collapse
- #increment!(interval) ⇒ Object
-
#initialize ⇒ Engine
constructor
A new instance of Engine.
- #stime(opts = {}) ⇒ Object
- #stime_async(opts = {}) ⇒ Object
- #substitution!(interval) ⇒ Object
Constructor Details
#initialize ⇒ Engine
Returns a new instance of Engine.
5 6 7 8 |
# File 'lib/polling/engine.rb', line 5 def initialize @target = @offset = 0 @init_time = 60 end |
Instance Attribute Details
#offset ⇒ Object
Returns the value of attribute offset.
4 5 6 |
# File 'lib/polling/engine.rb', line 4 def offset @offset end |
#target=(value) ⇒ Object
Sets the attribute target
4 5 6 |
# File 'lib/polling/engine.rb', line 4 def target=(value) @target = value end |
Instance Method Details
#increment!(interval) ⇒ Object
10 11 12 13 |
# File 'lib/polling/engine.rb', line 10 def increment! interval @init_time = interval if interval > 60 @target += interval end |
#stime(opts = {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/polling/engine.rb', line 20 def stime opts={} opts = {target: @target, init_time: @init_time}.merge opts case when target(opts[:target]) < opts[:init_time] stime = make_sleep(opts[:target],now_sec_to_f) stime += opts[:init_time] if opts[:target].eql? 0 when target(opts[:target]) >= opts[:init_time] decrement! stime = make_sleep(opts[:target],now_sec_to_f) + opts[:init_time] end stime += @offset stime -= opts[:init_time] if stime > opts[:init_time] if stime < 0 stime = opts[:init_time] - stime.abs end debug debug: opts[:debug], stime: stime stime end |
#stime_async(opts = {}) ⇒ Object
43 44 45 46 47 |
# File 'lib/polling/engine.rb', line 43 def stime_async opts={} stime = opts[:interval] - (opts[:after] - opts[:before]) debug debug: opts[:debug], stime: stime stime end |
#substitution!(interval) ⇒ Object
15 16 17 18 |
# File 'lib/polling/engine.rb', line 15 def substitution! interval @init_time = interval if interval > 60 @target = interval end |