Действительно ли возможно изменить ширину это prettyprint (require 'pp'
) использование, когда форматирование произведено? Например:
"mooth"=>["booth", "month", "mooch", "morth", "mouth", "mowth", "sooth", "tooth"]
"morth"=>["forth",
"mirth",
"month",
"mooth",
"morph",
"mouth",
"mowth",
"north",
"worth"]
Первое множество напечатано действующее, потому что оно соответствует в ширине столбца prettyprint, позволяет (79 знаков)... второе разделено на несколько линий, потому что оно не делает. Но я не могу найти метод для изменения колонки, на которой начинается это поведение.
pp
зависит от PrettyPrint
(у которого есть способы позволить различные ширины для буфера). Есть ли любой способ изменить ширину столбца по умолчанию для pp
, не переписывая его с нуля (доступ PrettyPrint
непосредственно)?
Поочередно, есть ли подобный рубиновый драгоценный камень, который обеспечивает эту функциональность?
#!/usr/bin/ruby1.8
require 'pp'
mooth = [
"booth", "month", "mooch", "morth",
"mouth", "mowth", "sooth", "tooth"
]
PP.pp(mooth, $>, 40)
# => ["booth",
# => "month",
# => "mooch",
# => "morth",
# => "mouth",
# => "mowth",
# => "sooth",
# => "tooth"]
PP.pp(mooth, $>, 79)
# => ["booth", "month", "mooch", "morth", "mouth", "mowth", "sooth", "tooth"]
Чтобы изменить по умолчанию с помощью патча обезьяны:
#!/usr/bin/ruby1.8
require 'pp'
class PP
class << self
alias_method :old_pp, :pp
def pp(obj, out = $>, width = 40)
old_pp(obj, out, width)
end
end
end
mooth = ["booth", "month", "mooch", "morth", "mouth", "mowth", "sooth", "tooth"]
pp(mooth)
# => ["booth",
# => "month",
# => "mooch",
# => "morth",
# => "mouth",
# => "mowth",
# => "sooth",
# => "tooth"]
Эти методы также работают в МРТ 1.9.3