Sha256: defa67022ccf830155da587b60d60ff63c69a443d8127ce995aef054cd62f96d

Contents?: true

Size: 596 Bytes

Versions: 1

Compression:

Stored size: 596 Bytes

Contents

module Harvestman
  module Crawler
    # Raised when given crawler type is not registered.
    class UnknownCrawler < ArgumentError; end

    def self.register(type, klass)
      @crawlers ||= {}
      @crawlers[type] = klass
    end

    def self.new(base_url, pages, type)
      if crawler = @crawlers[type]
        crawler.new(base_url, pages)
      else
        raise UnknownCrawler, "No such type: #{type}"
      end
    end

    require 'harvestman/crawler/parser'
    require 'harvestman/crawler/base'
    require 'harvestman/crawler/plain'
    require 'harvestman/crawler/fast'
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
harvestman-0.1.1 lib/harvestman/crawler.rb