Class: Spree::UserClassHandle

Inherits:
Object
  • Object
show all
Defined in:
lib/spree/user_class_handle.rb

Overview

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.

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`.

Instance Method Summary collapse

Instance Method Details

#to_sString

Returns the name of the user class as a string.

Returns:

  • (String)

    the name of the user class as a string.

Raises:

  • (RuntimeError)

    if Spree.user_class is nil



23
24
25
26
# 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_name
  "::#{Spree.user_class_name}"
end