Sha256: 9ecca7523c31140a35d8035f3b82526640de84f1117659fc040ccdf82a50de5a
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
module Blacklight # Create <link rel="alternate"> links from a documents dynamically class LinkAlternatePresenter include ActionView::Helpers::OutputSafetyHelper include ActionView::Helpers::TagHelper def initialize(view_context, document, options) @view_context = view_context @document = document @options = { unique: false, exclude: [] }.merge(options) end attr_reader :view_context, :document, :options # Renders links to alternate representations # provided by export formats. Returns empty string if no links available. def render seen = Set.new safe_join(document.export_formats.map do |format, spec| next if options[:exclude].include?(format) || (options[:unique] && seen.include?(spec[:content_type])) seen.add(spec[:content_type]) tag(:link, rel: "alternate", title: format, type: spec[:content_type], href: href(format)) end.compact, "\n") end def href(format) view_context.polymorphic_url(view_context.search_state.url_for_document(document), format: format) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
blacklight-7.0.0.rc1 | app/presenters/blacklight/link_alternate_presenter.rb |