module Delayer

Constants

VERSION

Attributes

default[RW]

Public Class Methods

StateError(state) click to toggle source
# File lib/delayer/error.rb, line 9
def self.StateError(state)
  case state
  when :run
    AlreadyRunningError
  when :done
    AlreadyExecutedError
  when :cancel
    AlreadyCanceledError
  end
end
generate_class(options = {}) click to toggle source

Generate new Delayer class.

Args

options

Hash

expire

processing expire (secs, 0=unlimited)

priority

priorities

default

default priotity

Return

A new class

# File lib/delayer.rb, line 25
def generate_class(options = {})
  if options[:priority]
    Class.new do
      include Priority
      @expire = options[:expire] || 0
      @priorities = options[:priority]
      @default_priority = options[:default]
    end
  else
    Class.new do
      include ::Delayer
      @expire = options[:expire] || 0
    end
  end
end
included(klass) click to toggle source
# File lib/delayer.rb, line 12
def included(klass)
  klass.extend Extend
end
method_missing(*args, &proc) click to toggle source
# File lib/delayer.rb, line 41
def method_missing(*args, &proc)
  (@default ||= generate_class).__send__(*args, &proc)
end
new(*args) click to toggle source
Calls superclass method Delayer::Priority.new
# File lib/delayer.rb, line 46
def initialize(*args)
  super
  @procedure = Procedure.new(self, &Proc.new)
end

Public Instance Methods

cancel() click to toggle source

Cancel this job

Exception

Delayer::AlreadyExecutedError

if already called run()

Return

self

# File lib/delayer.rb, line 56
def cancel
  @procedure.cancel
  self
end