Sha256: 36dc983b6c7afa145ec64890b3eaffbf9fe41c3456959f111d16d8056d15594e

Contents?: true

Size: 1.8 KB

Versions: 55

Compression:

Stored size: 1.8 KB

Contents

# frozen_string_literal: true

presenter = document_presenter(document)
xml.entry do
  xml.title presenter.heading

  # updated is required, for now we'll just set it to now, sorry
  xml.updated Time.current.iso8601

  Deprecation.silence(Blacklight::UrlHelperBehavior) do
    xml.link "rel" => "alternate", "type" => "text/html", "href" => polymorphic_url(url_for_document(document))
    # add other doc-specific formats, atom only lets us have one per
    # content type, so the first one in the list wins.
    xml << presenter.link_rel_alternates(unique: true)

    xml.id polymorphic_url(url_for_document(document))
  end

  if document.to_semantic_values.key? :author
    xml.author { xml.name(document.to_semantic_values[:author].first) }
  end

  with_format(:html) do
    xml.summary "type" => "html" do
      xml.text! render_document_partials(document,
                                         blacklight_config.view_config(:atom).summary_partials,
                                         document_counter: document_counter)
    end
  end

  #If they asked for a format, give it to them.
  if (params["content_format"] &&
    document.export_formats[params["content_format"].to_sym])

    type = document.export_formats[params["content_format"].to_sym][:content_type]

    xml.content type: type do |content_element|
      data = document.export_as(params["content_format"])

      # encode properly. See:
      # http://tools.ietf.org/html/rfc4287#section-4.1.3.3
      type = type.downcase
      if (type.downcase =~ %r{\+|/xml$})
        # xml, just put it right in
        content_element << data
      elsif (type.downcase =~ %r{text/})
        # text, escape
        content_element.text! data
      else
        #something else, base64 encode it
        content_element << Base64.encode64(data)
      end
    end

  end
end

Version data entries

55 entries across 55 versions & 2 rubygems

Version Path
blacklight-7.40.0 app/views/catalog/_document.atom.builder
blacklight-7.39.0 app/views/catalog/_document.atom.builder
blacklight-7.38.0 app/views/catalog/_document.atom.builder
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/blacklight-7.37.0/app/views/catalog/_document.atom.builder
blacklight-7.37.0 app/views/catalog/_document.atom.builder
blacklight-7.36.2 app/views/catalog/_document.atom.builder
blacklight-7.36.1 app/views/catalog/_document.atom.builder
blacklight-7.36.0 app/views/catalog/_document.atom.builder
blacklight-7.35.0 app/views/catalog/_document.atom.builder
blacklight-7.34.0 app/views/catalog/_document.atom.builder
blacklight-7.33.1 app/views/catalog/_document.atom.builder
blacklight-7.33.0 app/views/catalog/_document.atom.builder
blacklight-7.32.0 app/views/catalog/_document.atom.builder
blacklight-7.31.0 app/views/catalog/_document.atom.builder
blacklight-7.30.0 app/views/catalog/_document.atom.builder
blacklight-7.29.0 app/views/catalog/_document.atom.builder
blacklight-7.28.0 app/views/catalog/_document.atom.builder
blacklight-7.27.1 app/views/catalog/_document.atom.builder
blacklight-7.27.0 app/views/catalog/_document.atom.builder
blacklight-7.26.1 app/views/catalog/_document.atom.builder