Sha256: 56db43eaddcb633a66165616639386b3dfe0dd016cabc8eddb540a6e3d3c2740
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
# 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 # @!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_class.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
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
proxy_fetcher-0.10.2 | lib/proxy_fetcher/document.rb |
proxy_fetcher-0.10.1 | lib/proxy_fetcher/document.rb |