module Horsefield::Scraper::ClassMethods

Public Instance Methods

helper(name, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 52
def helper(name, &block)
  [Nokogiri::HTML::Document, Nokogiri::XML::Element].each do |klass|
    klass.instance_eval do
      define_method(name) { |*args| block.call(*args) }
    end
  end
end
lookups() click to toggle source
# File lib/horsefield/scraper.rb, line 44
def lookups
  @lookups ||= []
end
many(name, selector, lookup = :optional, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 64
def many(name, selector, lookup = :optional, &block)
  self.lookups << lambda { |doc| doc.many(name, selector, lookup, &block) }
end
many!(name, selector, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 68
def many!(name, selector, &block)
  many(name, selector, :required, &block)
end
many?(name, selector, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 72
def many?(name, selector, &block)
  many(name, selector, :presence, &block)
end
one(name, selector = nil, lookup = :optional, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 60
def one(name, selector = nil, lookup = :optional, &block)
  self.lookups << lambda { |doc| doc.one(name, selector, lookup, &block) }
end
one!(name, selector = nil, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 76
def one!(name, selector = nil, &block)
  one(name, selector, :required, &block)
end
one?(name, selector = nil, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 80
def one?(name, selector = nil, &block)
  one(name, selector, :presence, &block)
end
postprocess(&block) click to toggle source
# File lib/horsefield/scraper.rb, line 88
def postprocess(&block)
  @postprocessor = block
end
postprocessor() click to toggle source
# File lib/horsefield/scraper.rb, line 48
def postprocessor
  @postprocessor || Proc.new { self }
end
scope(selector, &block) click to toggle source
# File lib/horsefield/scraper.rb, line 84
def scope(selector, &block)
  self.lookups << lambda { |doc| doc.at(selector).instance_eval(&block) }
end