Class: Stackify::ScheduleTask

Inherits:
Object
  • Object
show all
Defined in:
lib/stackify/schedule_task.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(properties = {}, &action) ⇒ ScheduleTask

Returns a new instance of ScheduleTask.



6
7
8
9
10
11
# File 'lib/stackify/schedule_task.rb', line 6

def initialize properties={}, &action
  @limit = properties[:limit] || nil
  @attempts = properties[:attempts] || 3
  @success_condition = properties[:success_condition] || lambda{ |_result| true }
  @action = action
end

Instance Attribute Details

#actionObject (readonly)

Returns the value of attribute action.



4
5
6
# File 'lib/stackify/schedule_task.rb', line 4

def action
  @action
end

#attemptsObject (readonly)

Returns the value of attribute attempts.



4
5
6
# File 'lib/stackify/schedule_task.rb', line 4

def attempts
  @attempts
end

#limitObject (readonly)

Returns the value of attribute limit.



4
5
6
# File 'lib/stackify/schedule_task.rb', line 4

def limit
  @limit
end

Instance Method Details

#execute!Object



13
14
15
# File 'lib/stackify/schedule_task.rb', line 13

def execute!
  @action.call
end

#success?(result_of_task_execution) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/stackify/schedule_task.rb', line 17

def success? result_of_task_execution
  @success_condition.call result_of_task_execution
end