/usr/lib/ruby/vendor_ruby/hpricot/inspect.rb is in ruby-hpricot 0.8.6-5ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | require 'pp'
module Hpricot
# :stopdoc:
class Elements
def pretty_print(q)
q.object_group(self) { super }
end
alias inspect pretty_print_inspect
end
class Doc
def pretty_print(q)
q.object_group(self) { children.each {|elt| q.breakable; q.pp elt } if children }
end
alias inspect pretty_print_inspect
end
module Leaf
def pretty_print(q)
q.group(1, '{', '}') {
q.text self.class.name.sub(/.*::/,'').downcase
if rs = raw_string
rs.scan(/[^\r\n]*(?:\r\n?|\n|[^\r\n]\z)/) {|line|
q.breakable
q.pp line
}
elsif self.respond_to? :to_s
q.breakable
q.text self.to_s
end
}
end
alias inspect pretty_print_inspect
end
class Elem
def pretty_print(q)
if empty?
q.group(1, '{emptyelem', '}') {
q.breakable; pretty_print_stag q
}
else
q.group(1, "{elem", "}") {
q.breakable; pretty_print_stag q
if children
children.each {|elt| q.breakable; q.pp elt }
end
if etag
q.breakable; q.text etag
end
}
end
end
def pretty_print_stag(q)
q.group(1, '<', '>') {
q.text name
if raw_attributes
raw_attributes.each {|n, t|
q.breakable
if t
q.text "#{n}=\"#{Hpricot.uxs(t)}\""
else
q.text n
end
}
end
}
end
alias inspect pretty_print_inspect
end
class ETag
def pretty_print(q)
q.group(1, '</', '>') {
q.text name
}
end
alias inspect pretty_print_inspect
end
class Text
def pretty_print(q)
q.text content.dump
end
end
class BogusETag
def pretty_print(q)
q.group(1, '{', '}') {
q.text self.class.name.sub(/.*::/,'').downcase
if rs = raw_string
q.breakable
q.text rs
else
q.text "</#{name}>"
end
}
end
end
# :startdoc:
end
|