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>
|
Sun Dec 1 23:04:03 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
|
||||||
|
|
||||||
* lib/optparse.rb (OptionParser::new): same as OptionParser#on but
|
* 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.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
|
--- PP.sharing_detection
|
||||||
returns the sharing detection flag as a boolean value.
|
returns the sharing detection flag as a boolean value.
|
||||||
It is false by default.
|
It is false by default.
|
||||||
|
@ -148,20 +154,19 @@ class PP < PrettyPrint
|
||||||
out << "\n"
|
out << "\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@sharing_detection = false
|
def PP.singleline_pp(obj, out=$>)
|
||||||
def PP.sharing_detection
|
pp = SingleLine.new(out)
|
||||||
return @@sharing_detection
|
pp.guard_inspect_key {pp.pp obj}
|
||||||
|
pp.flush
|
||||||
|
out
|
||||||
end
|
end
|
||||||
|
|
||||||
def PP.sharing_detection=(val)
|
@sharing_detection = false
|
||||||
@@sharing_detection = val
|
class << self
|
||||||
end
|
attr_accessor :sharing_detection
|
||||||
|
|
||||||
def initialize(out, width=79)
|
|
||||||
super
|
|
||||||
@sharing_detection = @@sharing_detection
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module PPMethods
|
||||||
InspectKey = :__inspect_key__
|
InspectKey = :__inspect_key__
|
||||||
|
|
||||||
def guard_inspect_key
|
def guard_inspect_key
|
||||||
|
@ -191,7 +196,7 @@ class PP < PrettyPrint
|
||||||
Thread.current[InspectKey] << id
|
Thread.current[InspectKey] << id
|
||||||
group {obj.pretty_print self}
|
group {obj.pretty_print self}
|
||||||
ensure
|
ensure
|
||||||
Thread.current[InspectKey].pop unless @sharing_detection
|
Thread.current[InspectKey].pop unless PP.sharing_detection
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -239,6 +244,13 @@ class PP < PrettyPrint
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
include PPMethods
|
||||||
|
|
||||||
|
class SingleLine < PrettyPrint::SingleLine
|
||||||
|
include PPMethods
|
||||||
|
end
|
||||||
|
|
||||||
module ObjectMixin
|
module ObjectMixin
|
||||||
# 1. specific pretty_print
|
# 1. specific pretty_print
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue