class Kan::Application
Public Class Methods
new(scopes = {})
click to toggle source
# File lib/kan/application.rb, line 5 def initialize(scopes = {}) raise(InvalidScopeError) unless scopes.is_a?(Hash) raise(InvalidScopeError) if scopes.empty? @scopes = Hash(scopes) @abilities_lists = {} end
Public Instance Methods
[](ability)
click to toggle source
# File lib/kan/application.rb, line 13 def [](ability) scope, ability_name = ability.split('.') abilities = Array(@scopes[scope.to_sym]) raise_scope_error(scope) if abilities.empty? return @abilities_lists[ability] if @abilities_lists[ability] @abilities_lists[ability] = AbilitiesList.new(ability_name, abilities) end
Private Instance Methods
raise_scope_error(scope)
click to toggle source
# File lib/kan/application.rb, line 25 def raise_scope_error(scope) raise ArgumentError.new("Invalid scope #{scope}") end