Module: Nanoc::Feeds::Helpers::Feeds

Includes:
Helpers::Blogging
Included in:
Nanoc::Feeds
Defined in:
lib/nanoc/feeds/helpers/feeds.rb

Instance Method Summary collapse

Instance Method Details

#build_for_article(article, title) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/nanoc/feeds/helpers/feeds.rb', line 31

def build_for_article(article, title)
  {
    id: "#{config[:base_url]}#{article.identifier.without_exts}",
    url: url_for(article),
    title: article[:title] || title,
    content_text: "#{article.compiled_content}",
    date_published: "#{article[:created_at].rfc3339}"
  }
end

#feed(params = {}) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/nanoc/feeds/helpers/feeds.rb', line 7

def feed(params = {})
  if @rep.name == :json
    json_feed(params)
  else
    atom_feed(params)
  end
end

#json_feed(params = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/nanoc/feeds/helpers/feeds.rb', line 15

def json_feed(params = {})
  articles = params[:articles]
  articles = articles.first(params[:limit]) if params[:limit]
  title = params[:title] || @config[:title]

  items = articles.map { |article| build_for_article(article, title) }

  {
    version: "https://jsonfeed.org/version/1.1",
    title: title,
    home_page_url: "#{config[:base_url]}",
    feed_url: feed_url,
    items: items
  }.to_json
end