Sha256: 8d90cc0e7e2f75628e62169f3c0b62ec7598d6dc6428b667d22209203c4f0715

Contents?: true

Size: 814 Bytes

Versions: 11

Compression:

Stored size: 814 Bytes

Contents

module Feedzirra
  
  # Class +Reader+ is an experimental interface for fetching and parsing +Feed+ objects,
  # using pluggable and (optionally) persistent backends to maintain state for fetched feeds.
  class Reader
            
    attr_reader :urls, :options
        
    def initialize(*args)
      @options  = args.extract_options!
      @urls     = args.flatten
    end
    
    # Map all urls to Feed objects, pulling existing feeds from Backend where available,
    # then slices and fetches feeds in chunks of 30.
    def fetch
      multi = multi_from(@urls, @options)
      multi.run
      multi.responses.size == 1 ? multi.responses.values.first : multi.responses.values 
    end
    
    private
    
    def multi_from(urls, options)
      Feedzirra::HttpMulti.new(@urls, @options)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
jsl-feedzirra-0.0.12.1 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.10 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.12 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.2 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.3 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.4 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.5 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.6 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.7 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.8 lib/feedzirra/reader.rb
jsl-feedzirra-0.0.12.9 lib/feedzirra/reader.rb