Module: PlanMyStuff::UserResolver
- Defined in:
- lib/plan_my_stuff/user_resolver.rb
Overview
Resolves user objects from user objects or integer IDs, and extracts display names, IDs, and support status using configuration methods.
Class Method Summary collapse
-
.display_name(user) ⇒ String
Extracts the display name from a user object.
-
.resolve(user) ⇒ Object
Resolves a user param (object or integer ID) into a user object.
-
.support?(user) ⇒ Boolean
Checks whether a user is support staff.
-
.user_id(user) ⇒ Integer?
Extracts the app-side user ID from a user object.
Class Method Details
.display_name(user) ⇒ String
Extracts the display name from a user object.
30 31 32 |
# File 'lib/plan_my_stuff/user_resolver.rb', line 30 def display_name(user) user.public_send(PlanMyStuff.configuration.display_name_method) end |
.resolve(user) ⇒ Object
Resolves a user param (object or integer ID) into a user object.
14 15 16 17 18 19 20 21 22 |
# File 'lib/plan_my_stuff/user_resolver.rb', line 14 def resolve(user) return if user.nil? return user unless user.is_a?(Integer) config = PlanMyStuff.configuration klass = Object.const_get(config.user_class) klass.find_by!(config.user_id_method => user) end |
.support?(user) ⇒ Boolean
Checks whether a user is support staff. Anonymous users (nil) are never support.
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/plan_my_stuff/user_resolver.rb', line 53 def support?(user) return false if user.nil? method = PlanMyStuff.configuration.support_method if method.is_a?(Proc) method.call(user) else user.public_send(method) end end |
.user_id(user) ⇒ Integer?
Extracts the app-side user ID from a user object.
40 41 42 43 44 |
# File 'lib/plan_my_stuff/user_resolver.rb', line 40 def user_id(user) return if user.nil? user.public_send(PlanMyStuff.configuration.user_id_method) end |