class SwitchUser::UserSet
Attributes
base_scope[R]
identifier[R]
label[R]
scope[R]
user_class[R]
Public Class Methods
init_from_config()
click to toggle source
# File lib/switch_user/user_set.rb, line 5 def self.init_from_config SwitchUser.available_users.map do |scope, base_scope| identifier = SwitchUser.available_users_identifiers[scope] label = SwitchUser.available_users_names[scope] new(scope, identifier, label, base_scope) end end
new(scope, identifier, label, base_scope)
click to toggle source
# File lib/switch_user/user_set.rb, line 21 def initialize(scope, identifier, label, base_scope) @scope = scope @user_class = normalize_class(scope) @identifier = identifier @label = label @base_scope = normalize_scope(base_scope) end
users()
click to toggle source
# File lib/switch_user/user_set.rb, line 13 def self.users init_from_config.flat_map do |user_set| user_set.users.map { |user| Record.build(user, user_set) } end end
Public Instance Methods
find_user(id)
click to toggle source
# File lib/switch_user/user_set.rb, line 29 def find_user(id) Record.build(users.where(id: id).first, self) end
Also aliased as: []
users()
click to toggle source
# File lib/switch_user/user_set.rb, line 35 def users base_scope end
Private Instance Methods
normalize_class(klass)
click to toggle source
# File lib/switch_user/user_set.rb, line 41 def normalize_class(klass) if klass.is_a?(Class) klass else klass.to_s.classify.constantize end end
normalize_scope(scope)
click to toggle source
# File lib/switch_user/user_set.rb, line 49 def normalize_scope(scope) if scope.respond_to?(:call) scoped = scope.call if scoped.respond_to?(:scoped) scoped else user_class.respond_to?(:scoped) ? user_class.scoped : user_class.all end else user_class.respond_to?(:scoped) ? user_class.scoped : user_class.all end end