Sha256: 35eb5a7e7b4286eb8d7b2ff97c5ec59cb737a194c22772d2c19cdb5572189cc6
Contents?: true
Size: 1.6 KB
Versions: 1
Compression:
Stored size: 1.6 KB
Contents
### ### ################################################################## ### ### Node#to_debug. ### ### ################################################################## ### module C class Node TO_DEBUG_TAB = ' ' def to_debug return Node.to_debug1(self) end def Node.to_debug1 x, prefix='', indent=0, is_child=true case x when NodeList if x.empty? return "#{TO_DEBUG_TAB*indent}#{prefix}[]\n" else str = "#{TO_DEBUG_TAB*indent}#{prefix}\n" x.each do |el| str << to_debug1(el, "- ", indent+1) end return str end when Node classname = x.class.name.gsub(/^C::/, '') str = "#{TO_DEBUG_TAB*indent}#{prefix}#{classname}" fields = x.fields bools, others = fields.partition{|field| field.reader.to_s[-1] == ??} bools.delete_if{|field| !x.send(field.reader)} bools.map!{|field| field.init_key} unless bools == [] str << " (#{bools.join(' ')})" end str << "\n" others.each do |field| val = x.send(field.reader) next if val == field.make_default || ## don't bother with non-child Nodes, since they may cause ## loops in the tree (val.is_a?(Node) && !field.child?) str << to_debug1(val, "#{field.reader}: ", indent+1, field.child?) end return str when Symbol return "#{TO_DEBUG_TAB*indent}#{prefix}#{x}\n" else return "#{TO_DEBUG_TAB*indent}#{prefix}#{x.inspect}\n" end return s.string end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cast-0.0.1 | lib/to_debug.rb |