Sha256: 4e48965f40189ab4f2cdf42b8364450f5e97c855169533c9da7db8a3880c9f99

Contents?: true

Size: 806 Bytes

Versions: 9

Compression:

Stored size: 806 Bytes

Contents

module IIIFManifest
  class ManifestBuilder
    class DeepCanvasBuilderFactory < CanvasBuilderFactory
      private

      def file_set_presenters(work)
        DeepFileSetEnumerator.new(work).to_a
      end
    end

    class DeepFileSetEnumerator
      attr_reader :work
      include Enumerable
      def initialize(work)
        @work = work
      end

      def each(&block)
        file_set_presenters.each do |file_set_presenter|
          yield file_set_presenter
        end
        work_presenters.each do |work_presenter|
          self.class.new(work_presenter).each(&block)
        end
      end

      private

      def file_set_presenters
        work.try(:file_set_presenters) || []
      end

      def work_presenters
        work.try(:work_presenters) || []
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/iiif_manifest-1.5.0/lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.6.0 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.5.0 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.4.0 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.3.1 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.3.0 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.2.0 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.1.1 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb
iiif_manifest-1.1.0 lib/iiif_manifest/manifest_builder/deep_canvas_builder_factory.rb