class Juknife::Scraping::DSL::Items
A DSL
node in the tree that scrapes elements.
Attributes
name[R]
selector[R]
type[R]
Public Class Methods
new(name, selector, type = :string, *args, &block)
click to toggle source
# File lib/juknife/scraping/dsl/items.rb, line 15 def initialize(name, selector, type = :string, *args, &block) @name = name @selector = selector @type = type @args = args return unless block instance_eval(&block) end
Public Instance Methods
visit(context)
click to toggle source
# File lib/juknife/scraping/dsl/items.rb, line 25 def visit(context) # rubocop:disable Metrics/AbcSize result = [] context.find_all(selector).each do |ele_chlid| child_context = Context.new(ele_chlid, {}) children.each do |child| child.visit(child_context) end result << child_context.result end context.result[name] = result.reject { |hash| hash.values.compact.all?(&:empty?) } end