Module: Capable::ActsAsCapability::ClassMethods

Defined in:
lib/acts_as_capability.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_capabilityObject



11
12
13
14
15
16
17
18
19
20
# 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) ⇒ Object



22
23
24
25
26
27
28
29
30
# 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) ⇒ Object



32
33
34
35
36
37
38
# 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