module Kan::Abilities

Constants

DEFAULT_ABILITY_BLOCK

Attributes

logger[R]

Public Class Methods

included(base) click to toggle source
# File lib/kan/abilities.rb, line 5
def self.included(base)
  base.extend(ClassMethods)
end
new(options = {}) click to toggle source
# File lib/kan/abilities.rb, line 60
def initialize(options = {})
  @options = options
  @logger = @options.fetch(:logger, Logger.new(STDOUT))
end

Public Instance Methods

ability(name) click to toggle source
# File lib/kan/abilities.rb, line 65
def ability(name)
  rule = self.class.ability_list[name.to_sym] || @options[:default_ability_block] || DEFAULT_ABILITY_BLOCK
  ->(*args) { instance_exec(args, &rule) }
end