Sha256: 4fd4f9fcd982b0e5c7685e4ecf20211812af54163c74deade8b54b5a12dafe08

Contents?: true

Size: 950 Bytes

Versions: 4

Compression:

Stored size: 950 Bytes

Contents

require 'rss/maker'

require 'murlsh'

module Murlsh

  # Rss feed builder.
  class RssBody
    include Murlsh::FeedBody

    # Rss feed builder.
    def build
      if defined?(@body)
        @body
      else
        feed = RSS::Maker.make('2.0') do |f|
          f.channel.title = f.channel.description = feed_title
          f.channel.link = feed_url

          f.items.do_sort = true

          urls.each do |mu|
            Murlsh::Plugin.hooks('url_display_pre') do |p|
              p.run mu, req, config
            end

            i = f.items.new_item
            i.title = mu.title_stripped
            i.link = mu.url
            i.date = mu.time

            mu.enclosures.first(1).each do |e|
              i.enclosure.url = e.enclosure_url
              i.enclosure.type = e.content_type
              i.enclosure.length = e.content_length
            end

          end
        end

        @body = feed
      end
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
murlsh-1.9.3 lib/murlsh/rss_body.rb
murlsh-1.9.2 lib/murlsh/rss_body.rb
murlsh-1.9.1 lib/murlsh/rss_body.rb
murlsh-1.9.0 lib/murlsh/rss_body.rb