Skip to content

Commit

Permalink
Merge pull request #6758 from samvera/hyrax_fix_collection
Browse files Browse the repository at this point in the history
Fix “::Collection” definition with autoloading
  • Loading branch information
dlpierce authored Mar 28, 2024
2 parents 8282378 + eebfaa4 commit 27499ad
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion app/models/collection.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,16 @@

# Provide plain collection model if not defined by the application.
# Needed until Hyrax internals do not assume its existence.
class ::Collection < Hyrax.config.collection_class; end unless '::Collection'.safe_constantize
class ::Collection < Hyrax.config.collection_class; end unless ActiveSupport::Dependencies.then do |deps|
# In autoloading environments, when referencing +::Collection+ from the
# initializer, make sure that +safe_constantize+ wouldn’t just try loading
# this file again (which would produce a runtime error). Do this by manually
# searching for the file which should define +::Collection+ and checking if it
# is the one being currently loaded.
break true if Object.const_defined?(:Collection)
file_path = deps.search_for_file("collection")
expanded = File.expand_path(file_path)
expanded.delete_suffix!(".rb")
break false if deps.loading.include?(expanded)
'::Collection'.safe_constantize
end

0 comments on commit 27499ad

Please sign in to comment.