class Ocman::Permission

Constants

PERMISSIONS

Attributes

permissions[R]

Public Class Methods

all() click to toggle source
# File lib/ocman/permission.rb, line 47
def all
  new(PERMISSIONS.keys)
end
new(permissions = [:all]) click to toggle source
# File lib/ocman/permission.rb, line 16
def initialize(permissions = [:all])
  @permissions = Set.new(permissions)
  @permissions = Set.new(PERMISSIONS.keys) if @permissions.include?(:all)

  raise ArgumentError, "No permission given. Valid permissions are: #{PERMISSIONS.keys}" if @permissions.empty?
  return if @permissions.all? { |permission| PERMISSIONS.key?(permission) }

  raise ArgumentError, "Valid permissions are: #{PERMISSIONS.keys}"
end

Public Instance Methods

+(other) click to toggle source
# File lib/ocman/permission.rb, line 32
def +(other)
  Permission.new(permissions + other.permissions)
end
-(other) click to toggle source
# File lib/ocman/permission.rb, line 36
def -(other)
  Permission.new(permissions - other.permissions)
end
to_i() click to toggle source
# File lib/ocman/permission.rb, line 26
def to_i
  @permissions
    .map { |permission| PERMISSIONS.fetch(permission) }
    .inject(&:|) || PERMISSIONS[:all]
end