Sha256: 3b87b780992102d78913b4baf3e3002f9b1eecede2997c785453ba420e4c261d

Contents?: true

Size: 776 Bytes

Versions: 2

Compression:

Stored size: 776 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
      [:oembed, :index_map, :tilejson, :xyz, :wmts, :tms, :wms, :iiif, :tiled_map_layer, :dynamic_map_layer,
        :image_map_layer, :feature_layer]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
geoblacklight_admin-0.4.1 app/services/geoblacklight_admin/item_viewer.rb
geoblacklight_admin-0.4.0 app/services/geoblacklight_admin/item_viewer.rb