Ruby漂亮的打印字符串

时间:2013-08-30 02:27:56

标签: ruby logging printing

我有一张地图,其中键(一个字符串)的字符数可以变化很多,我想要智能地打印它:

MAP = {
    "key1" => "value1",
    "key2" => "value2",
}

会打印:

key1 -> value1
key2 -> value2

MAP = {
    "key1" => "value1",
    "key2" => "value2",
    "key3_dam_it_you_are_a_big_one_indeed" => "value3",
}

会打印:

key1                                 -> value1
key2                                 -> value2
key3_dam_it_you_are_a_big_one_indeed -> value3

他的想法是key1和key2会根据key3的大小改变他们的打印行。

谢谢!

1 个答案:

答案 0 :(得分:1)

怎么样?
class Hash
  def nice_print
    max_key_length = keys.map(&:length).max
    each { |key, value| puts "#{key.ljust(max_key_length)} -> #{value}" }
  end
end

你打电话

MAP.nice_print