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:
parent
232fda5237
commit
96f82b243f
2 changed files with 85 additions and 69 deletions
|
@ -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
|
||||
|
|
34
lib/pp.rb
34
lib/pp.rb
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue