Class: ProxyFetcher::Document::AbstractAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/proxy_fetcher/document/adapters/abstract_adapter.rb

Overview

Abstract HTML parser adapter class. Handles document manipulations.

Direct Known Subclasses

NokogiriAdapter, OgaAdapter

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(document) ⇒ AbstractAdapter

Initialize adapter



16
17
18
# File 'lib/proxy_fetcher/document/adapters/abstract_adapter.rb', line 16

def initialize(document)
  @document = document
end

Instance Attribute Details

#documentObject (readonly)

Returns the value of attribute document.



10
11
12
# File 'lib/proxy_fetcher/document/adapters/abstract_adapter.rb', line 10

def document
  @document
end

#eventsHash (readonly)

Returns A hash with events registered within a bus.

Returns:

  • (Hash)

    A hash with events registered within a bus



10
# File 'lib/proxy_fetcher/document/adapters/abstract_adapter.rb', line 10

attr_reader :document

Class Method Details

.setup!(*args) ⇒ Object

Installs adapter requirements.

Raises:



44
45
46
47
48
49
# File 'lib/proxy_fetcher/document/adapters/abstract_adapter.rb', line 44

def self.setup!(*args)
  install_requirements!(*args)
  self
rescue LoadError, StandardError => e
  raise Exceptions::AdapterSetupError.new(name, e.message)
end

Instance Method Details

#proxy_nodeProxyFetcher::Document::Node

Returns Node class that will handle HTML nodes for particular adapter.

Returns:



35
36
37
# File 'lib/proxy_fetcher/document/adapters/abstract_adapter.rb', line 35

def proxy_node
  self.class.const_get("Node")
end

#xpath(selector) ⇒ Object

You can override this method in your own adapter class

Parameters:

  • selector (String)

    XPath selector



25
26
27
# File 'lib/proxy_fetcher/document/adapters/abstract_adapter.rb', line 25

def xpath(selector)
  document.xpath(selector)
end