class Permify::PermissionMap
Provides a convenient way to store and retrieve permission data
Attributes
data[R]
Public Class Methods
new()
click to toggle source
# File lib/permify/permission_map.rb, line 3 def initialize @data = {} end
Public Instance Methods
find(resource, action)
click to toggle source
# File lib/permify/permission_map.rb, line 13 def find(resource, action) resource_key, action_key = to_keys(resource, action) data.fetch(resource_key, {})[action_key] end
store(resource, action, info)
click to toggle source
# File lib/permify/permission_map.rb, line 7 def store(resource, action, info) resource_key, action_key = to_keys(resource, action) data[resource_key] ||= {} data[resource_key][action_key] = info end
Private Instance Methods
to_keys(resource, action)
click to toggle source
Transforms resource and action into keys for use in internal hashes
@param resource [Class, Object] resource object or its class @param action [String, to_sym]
@return keys [Array<Symbol>] array with resource and action key
# File lib/permify/permission_map.rb, line 28 def to_keys(resource, action) resource_class = resource.is_a?(Class) ? resource : resource.class [resource_class.name, action].map(&:to_sym) end