Sha256: ab82d04763ae4af55ab54a0cefae4aa3c7d4f6fd475b37b558f436b2005933e1
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
#coding: utf-8 require 'wombat/property/locators/factory' require 'wombat/processing/node_selector' require 'mechanize' require 'restclient' module Wombat module Processing module Parser attr_accessor :mechanize, :context, :response_code, :page def initialize @mechanize = Mechanize.new end def parse(metadata) @context = parser_for metadata Wombat::Property::Locators::Factory.locator_for(metadata).locate(@context, @mechanize) end private def parser_for(metadata) url = "#{metadata[:base_url]}#{metadata[:path]}" page = nil parser = nil begin if metadata[:document_format] == :html @page = @mechanize.get(url) parser = @page.parser else @page = RestClient.get(url) parser = Nokogiri::XML @page end @response_code = @page.code.to_i if @page.respond_to? :code parser rescue if $!.respond_to? :http_code @response_code = $!.http_code.to_i elsif $!.respond_to? :response_code @response_code = $!.response_code.to_i end raise $! end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wombat-2.0.0 | lib/wombat/processing/parser.rb |