Skip to content

Commit 0c4d69e

Browse files
authored
make initialization of wings simpler and make it easier to override (#2363)
1 parent 920da19 commit 0c4d69e

File tree

1 file changed

+7
-38
lines changed

1 file changed

+7
-38
lines changed

config/initializers/wings.rb

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,15 @@
88

99
# rubocop:disable Metrics/BlockLength
1010
Rails.application.config.after_initialize do
11-
[
12-
GenericWork,
13-
Image,
14-
Etd,
15-
Oer
16-
].each do |klass|
11+
# Add all concerns that are migrating from ActiveFedora here
12+
WINGS_CONCERNS ||= [AdminSet, Collection, Etd, GenericWork, Image, Oer].freeze
13+
14+
WINGS_CONCERNS.each do |klass|
1715
Wings::ModelRegistry.register("#{klass}Resource".constantize, klass)
1816
# we register itself so we can pre-translate the class in Freyja instead of having to translate in each query_service
1917
Wings::ModelRegistry.register(klass, klass)
2018
end
21-
Wings::ModelRegistry.register(Collection, Collection)
22-
Wings::ModelRegistry.register(CollectionResource, Collection)
23-
Wings::ModelRegistry.register(AdminSet, AdminSet)
24-
Wings::ModelRegistry.register(AdminSetResource, AdminSet)
19+
2520
Wings::ModelRegistry.register(FileSet, FileSet)
2621
Wings::ModelRegistry.register(Hyrax::FileSet, FileSet)
2722
Wings::ModelRegistry.register(Hydra::PCDM::File, Hydra::PCDM::File)
@@ -110,34 +105,8 @@
110105
end
111106

112107
Valkyrie.config.resource_class_resolver = lambda do |resource_klass_name|
113-
# TODO: Can we use some kind of lookup.
114-
klass_name = resource_klass_name.gsub(/Resource$/, '')
115-
if %w[
116-
GenericWork
117-
Image
118-
Etd
119-
Oer
120-
].include?(klass_name)
121-
"#{klass_name}Resource".constantize
122-
elsif 'Collection' == klass_name
123-
CollectionResource
124-
elsif 'AdminSet' == klass_name
125-
AdminSetResource
126-
# Without this mapping, we'll see cases of Postgres Valkyrie adapter attempting to write to
127-
# Fedora. Yeah!
128-
elsif 'Hydra::AccessControl' == klass_name
129-
Hyrax::AccessControl
130-
elsif 'FileSet' == klass_name
131-
Hyrax::FileSet
132-
elsif 'Hydra::AccessControls::Embargo' == klass_name
133-
Hyrax::Embargo
134-
elsif 'Hydra::AccessControls::Lease' == klass_name
135-
Hyrax::Lease
136-
elsif 'Hydra::PCDM::File' == klass_name
137-
Hyrax::FileMetadata
138-
else
139-
klass_name.constantize
140-
end
108+
klass = resource_klass_name.gsub(/Resource$/, '').constantize
109+
Wings::ModelRegistry.reverse_lookup(klass) || klass
141110
end
142111
end
143112
# rubocop:enable Metrics/BlockLength

0 commit comments

Comments
 (0)