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