class Spree::UserClassHandle
Configuration point for User model implementation.
`Spree::UserClassHandle` allows you to configure your own implementation of a User class or use an extension like `solidus_auth_devise`.
@note Placeholder for name of Spree.user_class
to ensure later evaluation at
runtime. Unfortunately, it is possible for classes to get loaded before Spree.user_class has been set in the initializer. As a result, they end up with class_name: "" in their association definitions. For obvious reasons, that doesn't work. For now, Rails does not call to_s on the instance passed in until runtime. So this little hack provides a wrapper around Spree.user_class so that we can basically lazy-evaluate it. Yay! Problem solved forever.
Public Instance Methods
to_s()
click to toggle source
@return [String] the name of the user class as a string. @raise [RuntimeError] if Spree.user_class
is nil
# File lib/spree/user_class_handle.rb, line 23 def to_s fail "'Spree.user_class' has not been set yet." unless Spree.user_class "::#{Spree.user_class}" end