Sha256: 0fe1221b080351be652a00d4eb83914b1db9e4c638bd5f4a25710720019c3342

Contents?: true

Size: 645 Bytes

Versions: 10

Compression:

Stored size: 645 Bytes

Contents

module Roles::Generic::RoleUtil
  # extract role symbols from roles
  # should handle symbols, strings, arrays and Role instances
  def extract_roles *roles
    roles.flatten.map{|role| extract_role role}.compact
  end

  def extract_role role
    role = case role
    when Array
      role.flat_uniq.first
    else
      role
    end

    if defined?(Role) && role.kind_of?(Role)
      raise 'Role instances should have a #name method that reflects the role name' if !role.respond_to? :name
      return role.name.to_s.to_sym
    end

    case role
    when String, Symbol
      role.to_sym
    else
      nil
    end
  end
  
  extend self
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
roles_generic-0.5.0 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.9 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.8 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.7.2 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.7.1 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.7 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.6 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.5 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.4 lib/roles_generic/generic/role_util.rb
roles_generic-0.3.3 lib/roles_generic/generic/role_util.rb