class Qwik::SiteMetaData

Attributes

description[R]
generator[R]
last_build_date[R]
pub_date[R]
site_url[R]
title[R]

Public Class Methods

new(config, site) click to toggle source
# File vendor/qwik/lib/qwik/act-metadata.rb, line 63
def initialize(config, site)
  @config = config
  @site = site
  init_internal
end

Public Instance Methods

generate_atom() click to toggle source
# File vendor/qwik/lib/qwik/act-metadata.rb, line 105
def generate_atom
  init_internal

  xml = []
  xml << [:'?xml', '1.0', 'utf-8']

  gen_attr = {:uri=>'http://qwik.jp/'}
  gen_attr[:version] = VERSION if ! @config.test

  feed = [:feed, {:xmlns=>'http://www.w3.org/2005/atom'},
    [:title, @title],
    [:link, {:rel=>'alternate', :type=>'text/html', :href=>@site_url}],
    [:link, {:rel=>'self', :type=>'application/atom+xml',
        :href=>"#{@site_url}atom.xml"}],
    [:generator, gen_attr, @generator],
    [:updated, @updated]]

  each {|page, title, url, description, pub_date, updated|
    feed << [:entry,
      [:title, title],
      [:link, {:rel=>'alternate', :type=>'text/html', :href=>url}],
      [:updated, updated],
      [:summary, description],
    ]
  }

  xml << feed

  return xml
end
generate_rss20() click to toggle source
# File vendor/qwik/lib/qwik/act-metadata.rb, line 74
def generate_rss20
  init_internal

  xml = []
  xml << [:'?xml', '1.0', 'utf-8']
  rss = [:rss, {:version=>'2.0'}]

  channel = [:channel,
    [:title, @title],
    [:link, @site_url],
    [:description, @description],
    [:language, @language],
    [:pubdate, @pub_date],
    [:lastbuilddate, @last_build_date],
    [:generator, @generator]]

  each {|page, title, url, description, pub_date, updated|
    channel << [:item,
      [:title, title],
      [:link, url],
      [:description, description],
      [:pubdate, pub_date],
      [:guid, url]]
  }

  rss << channel
  xml << rss

  return xml
end

Private Instance Methods

each() { |page, title, url, description, pub_date, updated| ... } click to toggle source
# File vendor/qwik/lib/qwik/act-metadata.rb, line 181
def each
  # Limit the pages to 10 pages.
  @site.date_list.reverse[0..10].each {|page|
    title = page.key
    url = @site.page_url(page.key)
    description = page.mtime.rfc1123_date
    pub_date = page.mtime.rfc1123_date
    updated = page.mtime.rfc_date+'Z'

    yield(page, title, url, description, pub_date, updated)
  }
end
init_internal() click to toggle source
# File vendor/qwik/lib/qwik/act-metadata.rb, line 148
    def init_internal
      @public = @site.is_open?

      # Site data.
      without_testmode {
        @title = @site.title
        @site_url = @site.site_url
        @description = 'a private qwikWeb site.
Since this site is in private mode, the feed includes minimum data.'
        @language = 'ja'               # FIXME: should be configurable?
        @pub_date = @site.last_page_time.rfc1123_date
      }

      if @public
        @description = 'a public qwikWeb site.'
      end

      # Icon image.
      @image_url = 'http://qwik.jp/.theme/i/favicon.png'

      # Config data.
      @last_build_date = Time.now.rfc1123_date
    # @last_build_date = @req.start_time.rfc1123_date   # No @req here.
      @last_build_date = Time.at(0).rfc1123_date if @config.test

      @updated = Time.now.rfc_date
      @updated = Time.at(0).rfc_date if @config.test
      @updated += 'Z'

      @generator = Server.server_name
      @generator = 'qwikWeb' if @config.test
    end
without_testmode() { || ... } click to toggle source
# File vendor/qwik/lib/qwik/act-metadata.rb, line 138
def without_testmode
  org_test  = @config.test
  org_debug = @config.debug
  @config[:test] = false
  @config[:debug] = false
  yield
  @config[:test]  = org_test
  @config[:debug] = org_debug
end