lib/proxy_fetcher/document.rb in proxy_fetcher-0.6.2 vs lib/proxy_fetcher/document.rb in proxy_fetcher-0.6.3
- old
+ new
@@ -1,25 +1,48 @@
+# frozen_string_literal: true
+
module ProxyFetcher
# HTML document abstraction class. Used to work with different HTML parser adapters
# such as Nokogiri, Oga or a custom one. Stores <i>backend</i< that will handle all
# the DOM manipulation logic.
class Document
- class << self
- def parse(data)
- new(ProxyFetcher.config.adapter.parse(data))
- end
- end
-
+ # @!attribute [r] backend
+ # @return [Object] Backend object that handles DOM processing
attr_reader :backend
+ # Parses raw HTML data to abstract ProxyFetcher document.
+ #
+ # @param data [String] HTML
+ #
+ # @return [ProxyFetcher::Document]
+ # ProxyFetcher document model
+ #
+ def self.parse(data)
+ new(ProxyFetcher.config.adapter.parse(data))
+ end
+
+ # Initialize abstract ProxyFetcher HTML Document
+ #
+ # @return [Document]
+ #
def initialize(backend)
@backend = backend
end
+ # Searches elements by XPath selector.
+ #
+ # @return [Array<ProxyFetcher::Document::Node>]
+ # collection of nodes
+ #
def xpath(*args)
backend.xpath(*args).map { |node| backend.proxy_node.new(node) }
end
+ # Searches elements by CSS selector.
+ #
+ # @return [Array<ProxyFetcher::Document::Node>]
+ # collection of nodes
+ #
def css(*args)
backend.css(*args).map { |node| backend.proxy_node.new(node) }
end
end
end