Sha256: 1ded5ec0dfd07d352fade79dc14870266783a6dd8db2627804070fb6fb731403

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

# coding: utf-8

module Retter
  module Page::ViewHelper
    include Stationery

    def entry_path(*args)
      case args.first
      when Date, Time
        entry_path_by_date(*args)
      when Entry
        entry_path_by_entry(args.first)
      else
        raise TypeError, "wrong argument type #{args.first.class} (expected Date, Time or Retter::Entry)"
      end
    end

    def article_path(*args)
      case args.first
      when Date, Time
        article_path_by_date_and_id(*args)
      when Entry::Article
        article_path_by_article(args.first)
      else
        raise TypeError, "wrong argument type #{args.first.class} (expected Date, Time or Retter::Entry::Article)"
      end
    end

    def render_disqus_comment_form(disqus_shortname = config.disqus_shortname)
      Haml::Engine.new(<<-HAML).render
#disqus_thread
  :javascript
    var disqus_shortname = '#{disqus_shortname}';
    (function() {
      var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
      dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
      HAML
    end

    def article_path_by_date_and_id(date, id)
      date.strftime("/entries/%Y%m%d/#{id}.html")
    end

    def article_path_by_article(article)
      article_path(article.entry.date, article.id)
    end

    def entry_path_by_date(date, id = nil)
      date.strftime('/entries/%Y%m%d.html') + (id ? "##{id}" : '')
    end

    def entry_path_by_entry(entry)
      entry_path(entry.date)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
retter-0.2.2 lib/retter/page/view_helper.rb
retter-0.2.1 lib/retter/page/view_helper.rb