Sha256: 722aa6198ae720243d7931357eb6afc1eb86f493a70b9cf415e4ddef790b44ea

Contents?: true

Size: 1006 Bytes

Versions: 1

Compression:

Stored size: 1006 Bytes

Contents

#coding: utf-8
require 'wombat/metadata'
require 'wombat/property'
require 'wombat/parser'
require 'active_support'
require 'date'

module Wombat
  module Crawler
    include Parser
    extend ActiveSupport::Concern

    def crawl(&block)
      if block
        @metadata_dup = self.class.send(:metadata).clone
        instance_eval do
          def method_missing method, *args, &block
            @metadata_dup.send method, *args, &block
          end
        end
        self.instance_eval &block
        parse @metadata_dup
      else
        parse self.class.send(:metadata)
      end
    end

    module ClassMethods
      def method_missing method, *args, &block
        metadata.send method, *args, &block
      end

      def for_each selector, &block
        metadata.for_each(selector).instance_eval(&block) if block
      end

      def follow_links selector

      end

      def to_ary
      end

      private
      def metadata
        @metadata ||= Metadata.new
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wombat-0.3.1 lib/wombat/crawler.rb