Sha256: 4ab9ced8b3b4eb75d64abaa3702217bb21ee9cab3eaf718ab4618bd4e3c3b271

Contents?: true

Size: 957 Bytes

Versions: 6

Compression:

Stored size: 957 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

            if EnclosureContentTypes.include? mu.content_type
              i.enclosure.url = mu.url
              i.enclosure.type = mu.content_type
              i.enclosure.length = mu.content_length
            end
          end
        end

        @body = feed
      end
    end

  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
murlsh-1.8.0 lib/murlsh/rss_body.rb
murlsh-1.7.1 lib/murlsh/rss_body.rb
murlsh-1.7.0 lib/murlsh/rss_body.rb
murlsh-1.6.1 lib/murlsh/rss_body.rb
murlsh-1.6.0 lib/murlsh/rss_body.rb
murlsh-1.5.0 lib/murlsh/rss_body.rb