lib/wombat/crawler.rb in wombat-2.4.0 vs lib/wombat/crawler.rb in wombat-2.5.0

- old
+ new

@@ -8,28 +8,35 @@ module Wombat module Crawler include Processing::Parser extend ActiveSupport::Concern - def crawl(&block) + included do + class << self + attr_accessor :metadata + end + self.metadata = DSL::Metadata.new + end + + def crawl(url = nil, &block) if block @metadata_dup = self.class.send(:metadata).clone instance_eval do alias :old_method_missing :method_missing def method_missing method, *args, &block @metadata_dup.send method, *args, &block end end self.instance_eval &block - parsed = parse @metadata_dup + parsed = parse(@metadata_dup, url) instance_eval do alias :method_missing :old_method_missing remove_instance_variable :@metadata_dup end parsed else - parse self.class.send(:metadata) + parse(self.class.send(:metadata), url) end end alias_method :scrape, :crawl @@ -43,12 +50,11 @@ end def to_ary end - private - def metadata - @metadata ||= DSL::Metadata.new + def inherited(subclass) + subclass.metadata = self.metadata.clone end end end -end \ No newline at end of file +end