module QueueDispatcher::ActsAsTask::ClassMethods
Public Instance Methods
acts_as_task(args = {})
click to toggle source
# File lib/queue_dispatcher/acts_as_task.rb, line 18 def acts_as_task(args = {}) # Include number-helper for number_to_human_size method 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 # Add dynamic associations to task_dependency and task_property according to the class name TaskDependency.instance_eval %Q{ belongs_to :task, :class_name => '#{self.name}' belongs_to :dependent_task, :class_name => '#{self.name}' } end