aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/lib/nuldoc/pages/atom_page.rb
blob: 68c21193720a6d1161ab95b833546d6aaca3770e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module Nuldoc
  module Pages
    class AtomPage
      extend Dom

      def self.render(feed:)
        elem('feed', { 'xmlns' => 'http://www.w3.org/2005/Atom' },
             elem('id', {}, feed.id),
             elem('title', {}, feed.title),
             link({ 'rel' => 'alternate', 'href' => feed.link_to_alternate }),
             link({ 'rel' => 'self', 'href' => feed.link_to_self }),
             elem('author', {}, elem('name', {}, feed.author)),
             elem('updated', {}, feed.updated),
             *feed.entries.map do |entry|
               elem('entry', {},
                    elem('id', {}, entry.id),
                    link({ 'rel' => 'alternate', 'href' => entry.link_to_alternate }),
                    elem('title', {}, entry.title),
                    elem('summary', {}, entry.summary),
                    elem('published', {}, entry.published),
                    elem('updated', {}, entry.updated))
             end)
      end
    end
  end
end