Sha256: b0b45c51fef0d420d96ec8749a5e10319130c1b0c72bb9bf4ff00e6ed4acfaaa

Contents?: true

Size: 855 Bytes

Versions: 3

Compression:

Stored size: 855 Bytes

Contents

#coding: utf-8
require 'wombat/processing/node_selector'

module Wombat
  module Property
    module Locators
      # Abstract base class
      class Base
        include Wombat::Processing::NodeSelector
        
        def initialize(property)
          @property = property
        end

        def locate(context, page = nil)
          @context = context
          
          raw_data = yield if block_given?
          data = @property.respond_to?(:callback) && @property.callback ? @property.callback.call(raw_data) : raw_data 

          @property.wombat_property_name ? { @property.wombat_property_name => data } : data
        end

      protected
        def locate_nodes(context)
          @context = context

          select_nodes @property.wombat_property_selector, @property.wombat_property_namespaces
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
wombat-2.1.0 lib/wombat/property/locators/base.rb
wombat-2.0.1 lib/wombat/property/locators/base.rb
wombat-2.0.0 lib/wombat/property/locators/base.rb