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