2013-12-10 4 views
0

Ruby를 만드는 방법 pp 가능하면 작은 따옴표를 사용하여 유효한 (구문 분석 가능한) Ruby 문자열로 문자열을 출력하는 기능이 있습니까?Ruby PrettyPrint 작은 따옴표로

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'}] 

신경 쓸, I (그것이 가능 따옴표 문자열 안에 인용 따옴표를 사용하는?) sawa의 대답에 대한 편집이 거부 된 이후 답변을 찾지 못했습니다. 여기에 넣을 게요 :

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

답변

2

수 없습니다. 문자열은 구문 분석 후에 두 배 또는 작은 따옴표가 아니며 단지 문자열입니다. 작은 따옴표로 문자열을 표시하려면 고유 한 인쇄 기능을 작성해야합니다.

1

재정의 String#inspect.

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

나중에 다시 변경하는 것을 잊지 마세요, 또는 모든 문자열은 프로그램의 범위에서 큰 따옴표와 바람합니다 ~ –

+0

하지만 문자열 안에 작은 따옴표가있을 때 그것은 잘못이다 .. – Kokizzu

+0

@Kokizzu 무엇 부정확하다는 뜻입니까? 그걸 분명히해야합니다. – sawa

관련 문제