aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/lib/nuldoc/pages/atom_page.rb
blob: bf49f5487772b3439ab696da914237d05ef97eec (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
27
28
29
30
31
32
33
module Nuldoc
  module Pages
    class AtomPage
      def initialize(feed:)
        @feed = feed
      end

      def render
        feed = @feed
        DOM::AtomXMLBuilder.new.build do
          feed xmlns: 'http://www.w3.org/2005/Atom' do
            id { text feed.id }
            title { text feed.title }
            link(rel: 'alternate', href: feed.link_to_alternate)
            link(rel: 'self', href: feed.link_to_self)
            author { name { text feed.author } }
            updated { text feed.updated }
            feed.entries.each do |entry|
              entry do
                id { text entry.id }
                link(rel: 'alternate', href: entry.link_to_alternate)
                title { text entry.title }
                summary { text entry.summary }
                published { text entry.published }
                updated { text entry.updated }
              end
            end
          end
        end
      end
    end
  end
end