18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/queue_dispatcher/acts_as_task.rb', line 18
def acts_as_task(args = {})
include ActionView::Helpers::NumberHelper
include QueueDispatcher::ActsAsTask::InstanceMethods
extend QueueDispatcher::ActsAsTask::SingletonMethods
@acts_as_task_config = QueueDispatcher::ActsAsTask::Config.new(args[:task_queue_model] || :task_queue)
belongs_to acts_as_task_config.task_queue_class_name.to_sym
has_many :task_dependencies, :dependent => :destroy, :foreign_key => :task_id
has_many :dependent_tasks, :through => :task_dependencies
has_many :inverse_task_dependencies, :class_name => 'TaskDependency', :foreign_key => 'dependent_task_id', :dependent => :destroy
has_many :inverse_dependent_tasks, :through => :inverse_task_dependencies, :source => :task
validates_presence_of :target, :method_name, :state
serialize :target
serialize :args
serialize :result
TaskDependency.instance_eval %Q{
belongs_to :task, :class_name => '#{self.name}'
belongs_to :dependent_task, :class_name => '#{self.name}'
}
end
|