Skip to content

Commit

Permalink
Merge pull request #3 from MorphoSource/fileset-bug
Browse files Browse the repository at this point in the history
MR-1639: Return an empty array instead of [nil]
  • Loading branch information
JocelynTriplett authored Feb 16, 2024
2 parents 35a4ad3 + 16237bb commit f334cb2
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions lib/iiif_manifest/file_set_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ class FileSetManager

attr_reader :work

PRESENTER_TYPES = {
'Mesh' => 'mesh',
'CTImageSeries' => 'volume',
'Image' => 'image',
'Video' => 'video'
}

def initialize(work)
@work = work
end
Expand All @@ -12,22 +19,18 @@ def file_set_presenters
end

def results
# Return first file set presenter of matching mime types
return first_presenter(:mesh?) if media_type_is?('Mesh')
return first_presenter(:volume?) if media_type_is?('CTImageSeries')
return first_presenter(:image?) if media_type_is?('Image')
return first_presenter(:video?) if media_type_is?('Video')

# Don't return any presenters if media type is photogrammetry or other
[]
return [] unless media_type = @work.media_type&.first

type = "#{PRESENTER_TYPES[media_type]}?".to_sym # convert 'mesh' to :mesh?
first_presenter(type).compact
end

def first_presenter(type)
[file_set_presenters.find{ |presenter| presenter.send(type) }]
[file_set_presenters.find{ |presenter| presenter.try(type) }]
end

def all_presenters(type)
file_set_presenters.select{ |presenter| presenter.send(type) }
file_set_presenters.select{ |presenter| presenter.try(type) }
end

def media_type_is?(type)
Expand Down

0 comments on commit f334cb2

Please sign in to comment.