allow Devise::Models::Authenticatable to be loaded before Rails #3493
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I am using some Devise modules in a Sinatra app. Because Devise::Models::Authenticatable expects Rails to be defined, I need to add the following hack:
However, while this solves the immediate problem of making it possible to
include Devise::Models::Authenticatable
, it creates a new set of problems--other gems (annotate and recent versions of paperclip, delayed_job and ActiveRecord) usedefined?(Rails)
to determine whether some component of Rails is loaded.Since the Rails version is being checked to determine whether
serializable_hash
is defined, it would be more appropriate to check the version of ActiveModel anyway, since that is whereserializable_hash
lives.