class PermissionPolicy::PermissionReader
Attributes
file_path[R]
Public Class Methods
new(file_path)
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 8 def initialize(file_path) @file_path = file_path end
Public Instance Methods
features()
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 24 def features permissions.keys end
permissions()
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 12 def permissions @permissions = to_hash[:permissions] end
permitted?(feature, action, role)
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 28 def permitted?(feature, action, role) ensure_definition!(feature, action, role) permissions[feature][action] && permissions[feature][action].include?(role) end
roles()
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 16 def roles @roles = to_hash[:roles] end
to_hash()
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 20 def to_hash @raw ||= read_file.with_indifferent_access end
Private Instance Methods
ensure_definition!(feature, action, role)
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 36 def ensure_definition!(feature, action, role) raise PermissionPolicy::ReaderError, feature unless features.include? feature raise PermissionPolicy::ReaderError, action unless permissions[feature].keys.include? action raise PermissionPolicy::ReaderError, role unless roles.include? role end
read_file()
click to toggle source
# File lib/permission_policy/permission_reader.rb, line 42 def read_file YAML.load_file(file_path) end