module Capable::ActsAsCapability::ClassMethods

Public Instance Methods

acts_as_capability() click to toggle source
# File lib/acts_as_capability.rb, line 11
def acts_as_capability
  belongs_to :ability
  belongs_to :capable, :polymorphic => true
  belongs_to :renewer, :polymorphic => true

  after_create :update_capables
  after_update :update_capables

  include Capable::ActsAsCapability::InstanceMethods
end
create_capability(capable, ability, active=true, expires_at=nil, renewer=nil) click to toggle source
# File lib/acts_as_capability.rb, line 22
def create_capability(capable, ability, active=true, expires_at=nil, renewer=nil)
  create(
    capable: capable,
    ability: ability,
    active: active,
    expires_at: expires_at,
    renewer: renewer
  )
end
expire_capabilities(expiration_date) click to toggle source
# File lib/acts_as_capability.rb, line 32
def expire_capabilities(expiration_date)
  self.where('expires_at is not null and expires_at < ? and active = ?', expiration_date, true).find_each do |capability|
    puts "CAPABILITY_EXPIRE: Capable #{capability.capable_type} (#{capability.capable_id}) expired the ability #{capability.ability.name}" if Capable.configuration[:verbose]
    capability.active = false
    capability.save!
  end
end