Class: Analytics::CycleAnalytics::RuntimeLimiter

Inherits:
Object
  • Object
show all
Defined in:
app/models/analytics/cycle_analytics/runtime_limiter.rb

Constant Summary collapse

DEFAULT_MAX_RUNTIME =
200.seconds

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(max_runtime = DEFAULT_MAX_RUNTIME) ⇒ RuntimeLimiter

Returns a new instance of RuntimeLimiter.



12
13
14
15
# File 'app/models/analytics/cycle_analytics/runtime_limiter.rb', line 12

def initialize(max_runtime = DEFAULT_MAX_RUNTIME)
  @start_time = monotonic_time
  @max_runtime = max_runtime
end

Instance Attribute Details

#max_runtimeObject (readonly)

Returns the value of attribute max_runtime.



10
11
12
# File 'app/models/analytics/cycle_analytics/runtime_limiter.rb', line 10

def max_runtime
  @max_runtime
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



10
11
12
# File 'app/models/analytics/cycle_analytics/runtime_limiter.rb', line 10

def start_time
  @start_time
end

Instance Method Details

#elapsed_timeObject



17
18
19
# File 'app/models/analytics/cycle_analytics/runtime_limiter.rb', line 17

def elapsed_time
  monotonic_time - start_time
end

#over_time?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'app/models/analytics/cycle_analytics/runtime_limiter.rb', line 21

def over_time?
  @last_check = elapsed_time >= max_runtime
end

#was_over_time?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'app/models/analytics/cycle_analytics/runtime_limiter.rb', line 25

def was_over_time?
  !!@last_check
end