Class: Juknife::Scraping::Runner

Inherits:
Object
  • Object
show all
Includes:
DSL
Defined in:
lib/juknife/scraping/runner.rb

Overview

Juknife::Scraping::Runner object is a runner for scraping DSL.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DSL

#children, #item, #items, #scope

Constructor Details

#initialize(&block) ⇒ Runner

Returns a new instance of Runner.



12
13
14
15
# File 'lib/juknife/scraping/runner.rb', line 12

def initialize(&block)
  @block = block
  instance_eval(&@block)
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



10
11
12
# File 'lib/juknife/scraping/runner.rb', line 10

def block
  @block
end

#paramsObject (readonly)

Returns the value of attribute params.



10
11
12
# File 'lib/juknife/scraping/runner.rb', line 10

def params
  @params
end

#sourceObject (readonly)

Returns the value of attribute source.



10
11
12
# File 'lib/juknife/scraping/runner.rb', line 10

def source
  @source
end

Instance Method Details

#documentObject



23
24
25
# File 'lib/juknife/scraping/runner.rb', line 23

def document
  @document ||= Nokogiri.parse(source)
end

#resultObject



27
28
29
30
31
32
33
34
35
# File 'lib/juknife/scraping/runner.rb', line 27

def result
  context = Scraping::Context.new(document)

  children.each do |child|
    child.visit(context)
  end

  context.result
end

#run(source, params = {}) ⇒ Object



17
18
19
20
21
# File 'lib/juknife/scraping/runner.rb', line 17

def run(source, params = {})
  @params = params
  @source = source
  result
end