class Scraping::Rules::Element

Attributes

extract[R]
name[R]
options[R]
selector[R]

Public Class Methods

new(name, selector, options = {}, &extract) click to toggle source
# File lib/scraping/rules/element.rb, line 6
def initialize(name, selector, options = {}, &extract)
  @name = name
  @selector = selector
  @options = options
  @extract = extract if block_given?
end

Public Instance Methods

call(scraper, node) click to toggle source
# File lib/scraping/rules/element.rb, line 13
def call(scraper, node)
  item = node.at(selector)

  if item && options[:as]
    scraper.send("extract_#{options[:as]}", item)
  elsif item && extract
    scraper.instance_exec(item, &extract)
  elsif item
    item.text
  end
end