Sha256: 1b8605a359dabe6d9b701cf83c47ad8fecca24fe6d23fa6f836df8c56cfe5aca

Contents?: true

Size: 1.89 KB

Versions: 6

Compression:

Stored size: 1.89 KB

Contents

format :rss do
  
  attr_accessor :xml
  
  def initialize card, args
    super
    @xml = @parent.xml if @parent
  end

  def show view, args
    @xml = Builder::XmlMarkup.new
    view ||= :feed
    render view, args
  end

  # FIXME: integrate this with common XML features when it is added
  view :feed do |args|
    begin
      @xml.instruct! :xml, :version => "1.0"
      @xml.rss :version => "2.0" do
        @xml.channel do
          @xml.title       render_feed_title
          @xml.description render_feed_description
          @xml.link        render_url
          render_feed_item_list
        end
      end
    rescue =>e
      @xml.error "\n\nERROR rendering RSS: #{e.inspect}\n\n #{e.backtrace}"
    end
  end
  
  view :feed_item_list do |args|
    items = if card.type_id == Card::SearchTypeID  #FIXME! yuck.
      card.item_cards( search_params.merge(:default_limit => 25) )
    else
      [card]
    end
    items.each do |item|
      @xml.item do
        subformat(item).render_feed_item :view_changes=>(card.id==RecentID)  #FIXME! yuck.
      end
    end
  end
  
  
  view :feed_title do |args|
    Card.setting(:title) + " : " + card.name.gsub(/^\*/,'')
  end
  
  view :feed_item do |args|
    @xml.title card.name
    add_name_context
    @xml.description render((args[:view_changes] ? :change : :open_content))
    @xml.pubDate card.revised_at.to_s(:rfc822)  #updated_at fails on virtual cards, because not all to_s's take args (just actual dates)
    @xml.link render_url
    @xml.guid render_url
  end


  view :feed_description do |args| '' end
  view :comment_box     do |args| '' end
  view :menu            do |args| '' end
    
  
  view :open,         { :view=>:titled, :mod=>All::Base::Format }
  view :content,      { :view=>:core,   :mod=>All::Base::Format }
  view :open_content, { :view=>:core,   :mod=>All::Base::Format }
  view :closed,       { :view=>:link,   :mod=>All::Base::Format }

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
wagn-1.14.0 mod/05_standard/set/all/rss.rb
wagn-1.14.0.pre3 mod/05_standard/set/all/rss.rb
wagn-1.14.0.pre2 mod/05_standard/set/all/rss.rb
wagn-1.14.0.pre1 mod/05_standard/set/all/rss.rb
wagn-1.13.0 mod/standard/set/all/rss.rb
wagn-1.13.0.pre2 mods/standard/sets/all/rss.rb