module Activable::Methods

Public Instance Methods

activate(options={}) click to toggle source
# File lib/activable.rb, line 29
def activate(options={})
  verify_responsible(options)
  self.activated_at = Time.now
  self.activated_by = options[:responsible] if self.activable_config[:has_responsible]
end
activate!(options={}) click to toggle source
# File lib/activable.rb, line 41
def activate!(options={})
  activate(options)
  save
end
active?() click to toggle source
# File lib/activable.rb, line 24
def active?
  return true unless self.activated_at && self.deactivated_at
  self.activated_at >= self.deactivated_at
end
deactivate(options={}) click to toggle source
# File lib/activable.rb, line 35
def deactivate(options={})
  verify_responsible(options)
  self.deactivated_at = Time.now
  self.deactivated_by = options[:responsible] if self.activable_config[:has_responsible]
end
deactivate!(options={}) click to toggle source
# File lib/activable.rb, line 46
def deactivate!(options={})
  deactivate(options)
  save
end
init_active() click to toggle source
# File lib/activable.rb, line 20
def init_active
  self.activated_at = Time.now
end

Protected Instance Methods

verify_responsible(options) click to toggle source
# File lib/activable.rb, line 68
def verify_responsible(options)
  if self.activable_config[:has_responsible]
    resp = options && options[:responsible]
    if !resp
      raise "You must provide a responsible to activate a " + self.class.name
    elsif resp.class.name != self.activable_config[:responsible]
      raise "Object of type #{resp.class.name} is not a " + self.activable_config[:responsible]
    end
  end
end