mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/prettyprint.rb (PrettyPrint#seplist): added.
* lib/pp.rb (PPMethods#pp_object): use seplist. (PPMethods#pp_hash): ditto. (Array#pretty_print): ditto. (Struct#pretty_print): ditto. (MatchData#pretty_print): ditto. * lib/set.rb (Set#pretty_print): use seplist. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
90d8cbb1ee
commit
0c792a32b7
4 changed files with 32 additions and 19 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
Thu Feb 5 23:56:55 2004 Tanaka Akira <akr@m17n.org>
|
||||
|
||||
* lib/prettyprint.rb (PrettyPrint#seplist): added.
|
||||
|
||||
* lib/pp.rb (PPMethods#pp_object): use seplist.
|
||||
(PPMethods#pp_hash): ditto.
|
||||
(Array#pretty_print): ditto.
|
||||
(Struct#pretty_print): ditto.
|
||||
(MatchData#pretty_print): ditto.
|
||||
|
||||
* lib/set.rb (Set#pretty_print): use seplist.
|
||||
|
||||
Wed Feb 4 22:39:46 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* file.c (rb_stat_mode): should not sign-expand, so backout.
|
||||
|
|
17
lib/pp.rb
17
lib/pp.rb
|
@ -203,10 +203,9 @@ class PP < PrettyPrint
|
|||
|
||||
def pp_object(obj)
|
||||
object_address_group(obj) {
|
||||
obj.pretty_print_instance_variables.each {|v|
|
||||
v = v.to_s if Symbol === v
|
||||
text ',' unless first?
|
||||
seplist(obj.pretty_print_instance_variables, lambda { text ',' }) {|v|
|
||||
breakable
|
||||
v = v.to_s if Symbol === v
|
||||
text v
|
||||
text '='
|
||||
group(1) {
|
||||
|
@ -219,8 +218,7 @@ class PP < PrettyPrint
|
|||
|
||||
def pp_hash(obj)
|
||||
group(1, '{', '}') {
|
||||
obj.each {|k, v|
|
||||
comma_breakable unless first?
|
||||
seplist(obj, nil, :each_pair) {|k, v|
|
||||
group {
|
||||
pp k
|
||||
text '=>'
|
||||
|
@ -279,8 +277,7 @@ end
|
|||
class Array
|
||||
def pretty_print(q)
|
||||
q.group(1, '[', ']') {
|
||||
self.each {|v|
|
||||
q.comma_breakable unless q.first?
|
||||
q.seplist(self) {|v|
|
||||
q.pp v
|
||||
}
|
||||
}
|
||||
|
@ -310,8 +307,7 @@ end
|
|||
class Struct
|
||||
def pretty_print(q)
|
||||
q.group(1, '#<struct ' + self.class.name, '>') {
|
||||
self.members.each {|member|
|
||||
q.text "," unless q.first?
|
||||
q.seplist(self.members, lambda { q.text "," }) {|member|
|
||||
q.breakable
|
||||
q.text member.to_s
|
||||
q.text '='
|
||||
|
@ -420,8 +416,7 @@ class MatchData
|
|||
def pretty_print(q)
|
||||
q.object_group(self) {
|
||||
q.breakable
|
||||
1.upto(self.size) {|i|
|
||||
q.breakable unless q.first?
|
||||
q.seplist(1..self.size, lambda { q.breakable }) {|i|
|
||||
q.pp self[i-1]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,6 +159,19 @@ class PrettyPrint
|
|||
@group_stack.last
|
||||
end
|
||||
|
||||
def seplist(list, sep=nil, iter_method=:each)
|
||||
sep ||= lambda { comma_breakable }
|
||||
first = true
|
||||
list.__send__(iter_method) {|*v|
|
||||
if first
|
||||
first = false
|
||||
else
|
||||
sep.call
|
||||
end
|
||||
yield(*v)
|
||||
}
|
||||
end
|
||||
|
||||
def first?
|
||||
current_group.first?
|
||||
end
|
||||
|
|
|
@ -418,14 +418,7 @@ class Set
|
|||
def pretty_print(pp) # :nodoc:
|
||||
pp.text sprintf('#<%s: {', self.class.name)
|
||||
pp.nest(1) {
|
||||
first = true
|
||||
each { |o|
|
||||
if first
|
||||
first = false
|
||||
else
|
||||
pp.text ","
|
||||
pp.breakable
|
||||
end
|
||||
pp.seplist(self) { |o|
|
||||
pp.pp o
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue