lib/maxwell.rb in maxwell-0.2.0 vs lib/maxwell.rb in maxwell-0.3.0
- old
+ new
@@ -1,21 +1,25 @@
require "maxwell/converter"
-class Maxwell
+module Maxwell
class Base
class << self
def attr_scrape(*attr_scrapes)
@acquirer_class = Class.new do
attr_accessor *attr_scrapes
- @@attributes = attr_scrapes
+ @attr_scrapes = attr_scrapes
+ def self.attr_scrapes
+ @attr_scrapes
+ end
+
def initialize(nokogiri_obj)
@html = nokogiri_obj
end
def result
- @@attributes.map { |k| [k, send(k)] }.to_h
+ self.class.attr_scrapes.map { |k| [k, send(k)] }.to_h
end
end
end
def regist_strategy(link_selectore=nil, &strategy_blk)
@@ -24,23 +28,31 @@
end
def regist_handler(&handler_blk)
@handler_blk = handler_blk
end
+
+ def use_poltergeist(value)
+ @use_poltergeist = value
+ end
end
def execute(root_url)
if self.link_selectore
- html = Maxwell::Converter.execute(root_url)
+ html = Maxwell::Converter.call(root_url, use_poltergeist)
html.css(self.link_selectore).each do |a|
execute_for_result a[:href]
end
else
execute_for_result root_url
end
end
+ def use_poltergeist
+ self.class.instance_eval("@use_poltergeist")
+ end
+
def link_selectore
self.class.instance_eval("@link_selectore")
end
def strategy_blk
@@ -55,10 +67,10 @@
self.class.instance_eval("@acquirer_class")
end
private
def execute_for_result(tip_url)
- acquirer = acquirer_class.new(Maxwell::Converter.execute(tip_url))
+ acquirer = acquirer_class.new(Maxwell::Converter.call(tip_url, use_poltergeist))
acquirer.instance_eval &self.strategy_blk
acquirer.result.tap do |result|
self.handler_blk.call(result) if self.handler_blk
end