Sha256: 5d01f0ee8851087d3dca8bb810a3562f60e16cc7bcfbd6c42a1c55553ef26ab4

Contents?: true

Size: 808 Bytes

Versions: 3

Compression:

Stored size: 808 Bytes

Contents

# frozen_string_literal: true

module GeoblacklightAdmin
  class ItemViewer
    def initialize(references)
      @references = references
      @keys = references.keys.collect { |k| reference_uri_2_key(k) }
    end

    def viewer_protocol
      viewer_preference.find { |vp| @keys.include?(vp) } || :map
    end

    def viewer_endpoint
      @references[viewer_protocol_2_endpoint]
    end

    def reference_uri_2_key(value)
      Geoblacklight::Constants::URI.key(value)
    end

    def viewer_protocol_2_endpoint
      Geoblacklight::Constants::URI[viewer_protocol]
    end

    def viewer_preference
      [:cog, :pmtiles, :oembed, :index_map, :tilejson, :xyz, :wmts, :tms, :wms, :iiif_manifest, :iiif, :tiled_map_layer, :dynamic_map_layer,
        :image_map_layer, :feature_layer]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
geoblacklight_admin-0.5.1 app/services/geoblacklight_admin/item_viewer.rb
geoblacklight_admin-0.5.0 app/services/geoblacklight_admin/item_viewer.rb
geoblacklight_admin-0.4.2 app/services/geoblacklight_admin/item_viewer.rb