Sha256: f9af4d3f1adb76dc6e765f7a450e8c7546c0a61e88c8bad88a84cf7cc04f7823
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
require 'httparty' module ActiveScraper class Fetcher def fetch(u, opts={}) url = convert_uri_object(u) force_fresh = opts.delete :fresh if force_fresh != true && (record = fetch_from_cache(url, opts)) resp_obj = record else resp_obj = fetch_fresh(url, opts) end build_response_object(resp_obj) end def fetch_fresh(url, opts={}) opts = opts.stringify_keys url = url.to_s verb = opts.fetch('verb'){ 'get' } resp = HTTParty.send(verb, url) end # returns: # single ScrapeCache if a valid ActiveScraper::Request exists # def fetch_from_cache(uri, opts={}) end # true or false if ActiveScraper::Request with these parameters exist def has_cache?(uri, opts={}) end # u can either be a Request object, a String, or Addressable::URI # returns an Addressable::URI def convert_uri_object(u) if u.is_a?(ActiveScraper::Request) x = u.uri else x = Addressable::URI.parse(u) end return x end def build_response_object(obj) self.class.build_response_object(obj) end # returns an OpenStruct that Response can use def self.build_response_object(obj) return AgnosticResponseObject.new(obj) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_scraper-0.0.1 | lib/active_scraper/fetcher.rb |