Sha256: 2edd2876cf8c06f90cb040a231969fbc22ca3a39275db5e24635d32df9b7444a

Contents?: true

Size: 490 Bytes

Versions: 25

Compression:

Stored size: 490 Bytes

Contents

module Stackify
  class ScheduleTask

    attr_reader :limit, :attempts, :action

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

    def execute!
      @action.call
    end

    def success? result_of_task_execution
      @success_condition.call result_of_task_execution
    end

  end

end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
stackify-api-ruby-2.1.0 lib/stackify/schedule_task.rb
stackify-api-ruby-2.1.0.beta1 lib/stackify/schedule_task.rb
stackify-api-ruby-2.0.0 lib/stackify/schedule_task.rb
stackify-api-ruby-1.3.0.beta1 lib/stackify/schedule_task.rb
stackify-api-ruby-1.2.10 lib/stackify/schedule_task.rb
stackify-api-ruby-1.2.9 lib/stackify/schedule_task.rb
stackify-api-ruby-1.2.7 lib/stackify/schedule_task.rb
stackify-api-ruby-1.2.4 lib/stackify/schedule_task.rb
stackify-api-ruby-1.2.3 lib/stackify/schedule_task.rb
stackify-api-ruby-1.1.0 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.15 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.14 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.13 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.12 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.11 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.10 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.9 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.8 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.7 lib/stackify/schedule_task.rb
stackify-api-ruby-1.0.6 lib/stackify/schedule_task.rb