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