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
|
# File 'lib/nokogiri/xml/pp/node.rb', line 20
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.map do |t|
[t, send(t)] if respond_to?(t)
end.compact.find_all do |x|
if x.last
if [:attribute_nodes, :children].include?(x.first)
!x.last.empty?
else
true
end
end
end
pp.seplist(attrs) do |v|
if [:attribute_nodes, :children].include?(v.first)
pp.group(2, "#{v.first.to_s.sub(/_\w+$/, "s")} = [", "]") 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
pp.breakable
end
end
|