class LTIRoles::RoleManager

Attributes

context_roles[RW]
context_types[RW]
institution_roles[RW]
other_roles[RW]
roles[RW]
system_roles[RW]

Public Class Methods

new(roles = '') click to toggle source
# File lib/lti_roles.rb, line 13
def initialize(roles = '')
  @roles = roles
  @context_types = []
  @system_roles = []
  @institution_roles = []
  @context_roles = []
  @other_roles = []
  map_roles
end

Public Instance Methods

clean_role(urn_prefix, role) click to toggle source
# File lib/lti_roles.rb, line 40
def clean_role(urn_prefix, role)
  role.gsub(/#{Regexp.quote(urn_prefix)}/i, '').gsub('/', '').underscore
end
map_roles() click to toggle source
# File lib/lti_roles.rb, line 23
def map_roles
  roles.split(',').each do |role|
    case
    when role.downcase.include?(ContextTypeURN)
      context_types << clean_role(ContextTypeURN, role)
    when role.downcase.include?(SystemRoleURN)
      system_roles << clean_role(SystemRoleURN, role)
    when role.downcase.include?(InstitutionRoleURN)
      institution_roles << clean_role(InstitutionRoleURN, role)
    when role.downcase.include?(ContextRoleURN)
      context_roles << clean_role(ContextRoleURN, role)
    else
      other_roles << role
    end
  end
end
to_h() click to toggle source
# File lib/lti_roles.rb, line 44
def to_h
  {
    'roles' => roles,
    'context_type' => context_types,
    'system_roles' => system_roles,
    'institution_roles' => institution_roles,
    'context_roles' => context_roles
  }
end