Sha256: 76b892a5d00edc084b275dcb544809abf3ea67aa981b9c7c65c4a2b7b5d3164e

Contents?: true

Size: 590 Bytes

Versions: 6

Compression:

Stored size: 590 Bytes

Contents

module Smoke
  module Source # :nodoc:
    # Feed can take multiple rss or atom feeds and munge them up together.
    # 
    # Usage:
    #   Smoke.feed(:ruby) do
    #     url "domain.tld/rss"
    #     url "site.tld/atom"
    #   end
    class Feed < Origin
      attr_reader :requests
      
      def url(feed_uri)
        (@feeds ||= [] ) << feed_uri
      end
      
      protected
      def dispatch
        @requests = @feeds.map{|f| Smoke::Request.new(f, :raw_response) }
        self.items = @requests.map{|r| ::SimpleRSS.parse(r.body).items }.flatten
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
benschwarz-smoke-0.3.10 lib/smoke/source/feed.rb
benschwarz-smoke-0.3.4 lib/smoke/source/feed.rb
benschwarz-smoke-0.3.5 lib/smoke/source/feed.rb
benschwarz-smoke-0.3.6 lib/smoke/source/feed.rb
benschwarz-smoke-0.3.7 lib/smoke/source/feed.rb
benschwarz-smoke-0.3.9 lib/smoke/source/feed.rb