Ruby PrettyPrint单引号

时间:2013-12-10 03:10:40

标签: ruby pretty-print

如果可能的话,如何使用单引号使Ruby pp函数在有效(可解析的)Ruby字符串中输出String?

rows = [{name:'test',id:'182572'},{name:"Kal'el",id:'125125'}]
require 'pp'
pp rows

输出是:

[{:name=>"test", :id=>"182572"}, {:name=>"Kal'el", :id=>"125125"}]

期望的输出是:

[{:name=>'test', :id=>'182572'}, {:name=>"Kal'el", :id=>'125125'}]

(是否可以在单引号字符串中使用引用单引号?)

没关系,我找到了答案,因为我对sawa的答案的编辑被拒绝了,我会把它放在这里:

class String
  alias :old_inspect :inspect
  def inspect
    return old_inspect if self.include? "'"
    "'#{self}'"
  end
end

2 个答案:

答案 0 :(得分:2)

你做不到。解析后的字符串不是双引号或单引号,它们只是字符串。如果希望字符串显示单引号,则必须编写自己的打印功能。

答案 1 :(得分:1)

重新定义String#inspect

class String
  def inspect; "'#{self}'" end
end