Module: Rivendell::Import::Tasking::Status

Included in:
Rivendell::Import::Task
Defined in:
lib/rivendell/import/tasking/status.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



8
9
10
11
12
13
# File 'lib/rivendell/import/tasking/status.rb', line 8

def self.included(base)
  base.class_eval do
    after_initialize :define_default_status
  end
  base.extend ClassMethods
end

Instance Method Details

#change_status!(status) ⇒ Object



23
24
25
26
27
28
# File 'lib/rivendell/import/tasking/status.rb', line 23

def change_status!(status)
  logger.debug "Change status to #{status}"
  update_attribute :status, status.to_s
  # notify! if ran?
  invoke_status_changed_callbacks
end

#define_default_statusObject



4
5
6
# File 'lib/rivendell/import/tasking/status.rb', line 4

def define_default_status
  self.status ||= "pending"
end

#invoke_status_changed_callbacksObject



30
31
32
33
# File 'lib/rivendell/import/tasking/status.rb', line 30

def invoke_status_changed_callbacks
  callbacks = self.class.status_changed_callbacks.values_at(:all, status.to_sym).flatten
  callbacks.each { |method| send method }
end

#raw_statusObject



15
16
17
# File 'lib/rivendell/import/tasking/status.rb', line 15

def raw_status
  read_attribute(:status)
end

#statusObject



19
20
21
# File 'lib/rivendell/import/tasking/status.rb', line 19

def status
  ActiveSupport::StringInquirer.new(raw_status) if raw_status
end