Sha256: c11fc5585d21a2cbd8bc353f1dd61a57d5733fddcc5bea6c2191328459909da6
Contents?: true
Size: 1.05 KB
Versions: 8
Compression:
Stored size: 1.05 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 end end
Version data entries
8 entries across 8 versions & 1 rubygems