Sha256: 9aecd24005277ccb9476f818be11eff7e4af66a799a4d4000b501fa9b3449fc9

Contents?: true

Size: 1.27 KB

Versions: 17

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true
##
# This class encapsulates an XML file. If Mechanize finds a content-type
# of 'text/xml' or 'application/xml' this class will be instantiated and
# returned. This class also opens up the +search+ and +at+ methods available
# on the underlying Nokogiri::XML::Document object.
#
# Example:
#
#   require 'mechanize'
#
#   agent = Mechanize.new
#   xml = agent.get('http://example.org/some-xml-file.xml')
#   xml.class #=> Mechanize::XmlFile
#   xml.search('//foo[@attr="bar"]/etc')

class Mechanize::XmlFile < Mechanize::File
  extend Forwardable

  # The underlying Nokogiri::XML::Document object

  attr_reader :xml

  def initialize(uri = nil, response = nil, body = nil, code = nil)
    super uri, response, body, code
    @xml = Nokogiri.XML body
  end

  ##
  # :method: search
  #
  # Search for +paths+ in the page using Nokogiri's #search.  The +paths+ can
  # be XPath or CSS and an optional Hash of namespaces may be appended.
  #
  # See Nokogiri::XML::Node#search for further details.

  def_delegator :xml, :search, :search

  ##
  # :method: at
  #
  # Search through the page for +path+ under +namespace+ using Nokogiri's #at.
  # The +path+ may be either a CSS or XPath expression.
  #
  # See also Nokogiri::XML::Node#at

  def_delegator :xml, :at, :at
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
mechanize-2.14.0 lib/mechanize/xml_file.rb
mechanize-2.13.0 lib/mechanize/xml_file.rb
mechanize-2.12.2 lib/mechanize/xml_file.rb
mechanize-2.12.1 lib/mechanize/xml_file.rb
mechanize-2.12.0 lib/mechanize/xml_file.rb
mechanize-2.11.0 lib/mechanize/xml_file.rb
mechanize-2.10.1 lib/mechanize/xml_file.rb
mechanize-2.10.0 lib/mechanize/xml_file.rb
mechanize-2.9.2 lib/mechanize/xml_file.rb
mechanize-2.9.1 lib/mechanize/xml_file.rb
mechanize-2.9.0 lib/mechanize/xml_file.rb
mechanize-2.8.5 lib/mechanize/xml_file.rb
mechanize-2.8.4 lib/mechanize/xml_file.rb
mechanize-2.8.3 lib/mechanize/xml_file.rb
mechanize-2.8.2 lib/mechanize/xml_file.rb
mechanize-2.8.1 lib/mechanize/xml_file.rb
mechanize-2.8.0 lib/mechanize/xml_file.rb