class Permissify::Registry
The boot-time store of definitions. It holds, per resource key, the named facts, named permissions, and explicit action aliases. The DSL is only a registration script that writes here; the Registry has the authority. Mutation is synchronized and expected only at boot/reload boundaries.
Public Class Methods
new()
click to toggle source
# File lib/permissify/registry.rb, line 22 def initialize @resources = {} @mutex = Mutex.new end
Public Instance Methods
clear()
click to toggle source
# File lib/permissify/registry.rb, line 46 def clear @mutex.synchronize { @resources.clear } self end
define(resource_key, &block)
click to toggle source
# File lib/permissify/registry.rb, line 27 def define(resource_key, &block) raise DefinitionError, "define requires a block" unless block key = resource_key.to_sym @mutex.synchronize do definition = (@resources[key] ||= ResourceDefinition.new(key)) DSL.new(definition).instance_eval(&block) end self end
resource(resource_key)
click to toggle source
# File lib/permissify/registry.rb, line 38 def resource(resource_key) return nil unless resource_key @resources[resource_key.to_sym] end
resource_keys(= @resources.keys)
click to toggle source
# File lib/permissify/registry.rb, line 44 def resource_keys = @resources.keys def clear @mutex.synchronize { @resources.clear } self end end