Class: Polling::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/polling/engine.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEngine

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

#offsetObject

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

Parameters:

  • value

    the value to set the attribute target to.



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