Sha256: 7ff77db337ac3890d7258b938843fc118e119e3a442c0c40079fe43b30304b3a
Contents?: true
Size: 726 Bytes
Versions: 1
Compression:
Stored size: 726 Bytes
Contents
module Kan class Application class InvalidScopeError < StandardError; end def initialize(scopes = {}) raise(InvalidScopeError) unless scopes.is_a?(Hash) raise(InvalidScopeError) if scopes.empty? @scopes = Hash(scopes) @abilities_lists = {} end 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 def raise_scope_error(scope) raise ArgumentError.new("Invalid scope #{scope}") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kan-0.4.0 | lib/kan/application.rb |