123456789_123456789_123456789_123456789_123456789_

Module: Nokogiri::XML::PP::Node

Do not use. This module is for internal use only.

Constant Summary

Instance Method Summary

Instance Method Details

#inspect

[ GitHub ]

  
# File 'lib/nokogiri/xml/pp/node.rb', line 10

def inspect
  # handle the case where an exception is thrown during object construction
  if respond_to?(:data_ptr?) && !data_ptr?
    return "#<#{self.class}:#{format("0x%x", object_id)} (no data)>"
  end

  attributes = inspect_attributes.reject do |x|
    attribute = send(x)
    !attribute || (attribute.respond_to?(:empty?) && attribute.empty?)
  rescue NoMethodError
    true
  end
  attributes = if inspect_attributes.length == 1
    send(attributes.first).inspect
  else
    attributes.map do |attribute|
      "#{attribute}=#{send(attribute).inspect}"
    end.join(" ")
  end
  "#<#{self.class}:#{format("0x%x", object_id)} #{attributes}>"
end

#pretty_print(pp)

[ GitHub ]

  
# File 'lib/nokogiri/xml/pp/node.rb', line 32

def pretty_print(pp)
  nice_name = self.class.name.split("::").last
  pp.group(2, "#(#{nice_name}:#{format("0x%x", object_id)} {", "})") do
    pp.breakable

    attrs = inspect_attributes.filter_map do |t|
      [t, send(t)] if respond_to?(t)
    end.find_all do |x|
      if x.last
        if COLLECTIONS.include?(x.first)
          !x.last.empty?
        else
          true
        end
      end
    end

    if inspect_attributes.length == 1
      pp.pp(attrs.first.last)
    else
      pp.seplist(attrs) do |v|
        if COLLECTIONS.include?(v.first)
          pp.group(2, "#{v.first} = [", "]") do
            pp.breakable
            pp.seplist(v.last) do |item|
              pp.pp(item)
            end
          end
        else
          pp.text("#{v.first} = ")
          pp.pp(v.last)
        end
      end
    end

    pp.breakable
  end
end