Sha256: 0186fd269f1a460242cc44cb44697f2df0baedff229eb88f38a19d8ce5ae4c45
Contents?: true
Size: 893 Bytes
Versions: 2
Compression:
Stored size: 893 Bytes
Contents
#coding: utf-8 require 'wombat/property_locator' require 'mechanize' require 'restclient' module Wombat module Parser include PropertyLocator attr_accessor :mechanize, :context def initialize @mechanize = Mechanize.new end def parse metadata self.context = parser_for metadata original_context = self.context metadata.iterators.each do |it| select_nodes(it.selector).each do |node| self.context = node it.parse { |p| locate p } end end self.context = original_context metadata.parse { |p| locate p } metadata.flatten end private def parser_for metadata url = "#{metadata[:base_url]}#{metadata[:list_page]}" if metadata[:format] == :html @mechanize.get(url).parser else Nokogiri::XML RestClient.get(url) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
wombat-0.3.1 | lib/wombat/parser.rb |
wombat-0.3.0 | lib/wombat/parser.rb |