Sha256: da1b6078341302591fc926340891ba241d7e795363cef7342557f2a31ee4b910

Contents?: true

Size: 1.57 KB

Versions: 6

Compression:

Stored size: 1.57 KB

Contents

module GeoWorks
  class GeoWorksShowPresenter < Hyrax::WorkShowPresenter
    delegate :spatial, :temporal, :issued, :coverage, :provenance, :layer_modified,
             :identifier, to: :solr_document
    class_attribute :file_format_service

    def geo_file_set_presenters
      # filter for geo file sets
      file_set_presenters.select do |member|
        file_format_service.include? member.solr_document.fetch(:geo_mime_type_tesim, [])[0]
      end
    end

    def external_metadata_file_set_presenters
      # filter for external metadata files
      file_set_presenters.select do |member|
        MetadataFormatService.include? member.solr_document.fetch(:geo_mime_type_tesim, [])[0]
      end
    end

    def parent_work_presenters
      # filter out collection presenters
      member_of_presenters.select do |member|
        member.model_name.name != "Collection"
      end
    end

    def member_of_presenters
      Hyrax::PresenterFactory.build_presenters(member_of_ids,
                                               collection_presenter_class,
                                               *presenter_factory_arguments)
    end

    def member_of_ids
      ActiveFedora::SolrService.query("{!field f=member_ids_ssim}#{id}",
                                      fl: ActiveFedora.id_field)
                               .map { |x| x.fetch(ActiveFedora.id_field) }
    end

    def attribute_to_html(field, options = {})
      if field == :coverage
        GeoWorks::CoverageRenderer.new(field, send(field), options).render
      else
        super field, options
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
geo_works-0.2.0 app/presenters/geo_works/geo_works_show_presenter.rb
geo_works-0.1.4 app/presenters/geo_works/geo_works_show_presenter.rb
geo_works-0.1.3 app/presenters/geo_works/geo_works_show_presenter.rb
geo_works-0.1.2 app/presenters/geo_works/geo_works_show_presenter.rb
geo_works-0.1.1 app/presenters/geo_works/geo_works_show_presenter.rb
geo_works-0.1.0 app/presenters/geo_works/geo_works_show_presenter.rb