1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/pp.rb (PP.singleline_pp): new method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2002-12-02 16:16:05 +00:00
parent 232fda5237
commit 96f82b243f
2 changed files with 85 additions and 69 deletions

View file

@ -1,3 +1,7 @@
Tue Dec 3 01:13:41 2002 Tanaka Akira <akr@m17n.org>
* lib/pp.rb (PP.singleline_pp): new method.
Sun Dec 1 23:04:03 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* lib/optparse.rb (OptionParser::new): same as OptionParser#on but

View file

@ -78,6 +78,12 @@ PP#pp to print the object.
PP.pp returns ((|out|)).
--- PP.singleline_pp(obj[, out])
outputs ((|obj|)) to ((|out|)) like (({PP.pp})) but with no indent and
newline.
PP.singleline_pp returns ((|out|)).
--- PP.sharing_detection
returns the sharing detection flag as a boolean value.
It is false by default.
@ -148,20 +154,19 @@ class PP < PrettyPrint
out << "\n"
end
@@sharing_detection = false
def PP.sharing_detection
return @@sharing_detection
def PP.singleline_pp(obj, out=$>)
pp = SingleLine.new(out)
pp.guard_inspect_key {pp.pp obj}
pp.flush
out
end
def PP.sharing_detection=(val)
@@sharing_detection = val
end
def initialize(out, width=79)
super
@sharing_detection = @@sharing_detection
@sharing_detection = false
class << self
attr_accessor :sharing_detection
end
module PPMethods
InspectKey = :__inspect_key__
def guard_inspect_key
@ -191,7 +196,7 @@ class PP < PrettyPrint
Thread.current[InspectKey] << id
group {obj.pretty_print self}
ensure
Thread.current[InspectKey].pop unless @sharing_detection
Thread.current[InspectKey].pop unless PP.sharing_detection
end
end
@ -239,6 +244,13 @@ class PP < PrettyPrint
}
}
end
end
include PPMethods
class SingleLine < PrettyPrint::SingleLine
include PPMethods
end
module ObjectMixin
# 1. specific pretty_print