Module: Horsefield::Scraper::ClassMethods
- Defined in:
- lib/horsefield/scraper.rb
Instance Method Summary collapse
- #helper(name, &block) ⇒ Object
- #lookups ⇒ Object
- #many(name, selector, lookup = :optional, &block) ⇒ Object
- #many!(name, selector, &block) ⇒ Object
- #many?(name, selector, &block) ⇒ Boolean
- #one(name, selector = nil, lookup = :optional, &block) ⇒ Object
- #one!(name, selector = nil, &block) ⇒ Object
- #one?(name, selector = nil, &block) ⇒ Boolean
- #postprocess(&block) ⇒ Object
- #postprocessor ⇒ Object
- #scope(selector, &block) ⇒ Object
Instance Method Details
#helper(name, &block) ⇒ Object
52 53 54 55 56 57 58 |
# 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 ⇒ Object
44 45 46 |
# File 'lib/horsefield/scraper.rb', line 44 def lookups @lookups ||= [] end |
#many(name, selector, lookup = :optional, &block) ⇒ Object
64 65 66 |
# 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) ⇒ Object
68 69 70 |
# File 'lib/horsefield/scraper.rb', line 68 def many!(name, selector, &block) many(name, selector, :required, &block) end |
#many?(name, selector, &block) ⇒ Boolean
72 73 74 |
# 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) ⇒ Object
60 61 62 |
# 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) ⇒ Object
76 77 78 |
# File 'lib/horsefield/scraper.rb', line 76 def one!(name, selector = nil, &block) one(name, selector, :required, &block) end |
#one?(name, selector = nil, &block) ⇒ Boolean
80 81 82 |
# File 'lib/horsefield/scraper.rb', line 80 def one?(name, selector = nil, &block) one(name, selector, :presence, &block) end |
#postprocess(&block) ⇒ Object
88 89 90 |
# File 'lib/horsefield/scraper.rb', line 88 def postprocess(&block) @postprocessor = block end |
#postprocessor ⇒ Object
48 49 50 |
# File 'lib/horsefield/scraper.rb', line 48 def postprocessor @postprocessor || Proc.new { self } end |
#scope(selector, &block) ⇒ Object
84 85 86 |
# File 'lib/horsefield/scraper.rb', line 84 def scope(selector, &block) self.lookups << lambda { |doc| doc.at(selector).instance_eval(&block) } end |