2016-07-21 12 views
1
내가 문자열의 첫 번째 줄 오른쪽 들여 쓰기를 가지고 있기 때문에 내가, 예를 들어 잘못 들여 쓰기를 얻을 다른에 하나의 여러 줄 문자열을 보간하는 것을 시도하고있다

:보간 여러 줄 문자열

substring = <<-STRING.strip_heredoc 
    first line 
    second line 
STRING 

string = <<-STRING.strip_heredoc 
    Quote 
    #{ substring } 
    from substring 
STRING 
다음과 같이

결과가 될 것입니다 : 소망 한

Quote 
    first line 
    second line 
from substring 

내 questio이다

Quote 
    first line 
second line 

    from substring 

반면 n은 this question about perl and xml 또는 this one about erb과 거의 비슷하지만 조금 더 일반적입니다.

하지만 SQL뿐만 아니라 다른 언어에 대한 보간 어떤 SGML (XML, HTML 또는 ERB)뿐만 아니라 생성하는 데 유용 할 수 있다는 사실 ...

어떤 식 으로든, 방법 또는 관행이 있습니까 고려 올바른 들여 쓰기로 여러 줄을 보간하려면? 아날로그는

루비 2.3 기능 <<~입니다 : 경우

당신이 사후 처리 다른 언어에 대한 (예 : HTML, SQL)를 추천 할 것입니다 어떤 도구 방법,


업데이트가 없습니다 strip_heredoc 여전히 (그리고 분명히) 하위 문자열의 첫 번째 줄에만 들여 쓰기를 추가합니다.

답변

1

나는이 질문을보고이 질문을 보았습니다. 해결할 아침 프로그래밍 퍼즐. 내가 생각했던 것보다 더 힘들었다. 나는 API 나 복잡성에 감격하지 않았지만, 더 이상 시간을 보내고 싶지 않았고 작동합니다. 어쩌면 당신은 유용 할 것입니다. 그렇지 않다면 아마 적어도 다른 대안적인 접근 방법에 영감을 불어 넣을 것입니다.

일반 Ruby Here Documents를 사용하여 필요에 맞는 라이브러리 또는 프레임 워크를 알지 못합니다. Ruby 2.3 has a new feature은 기본적으로 Rails의 #strip_heredoc이하는 일을 수행하지만 사용하지는 않았고 멀티 라인 보간법을 어떻게 처리하는지 알지 못합니다.

https://gist.github.com/shock/1d269a91f938bf1a1c3cba3856bedf19

+0

예, 감사합니다, 나는 루비 2.3 기능을 알고 : 여기에 (루비 2.0을 사용) 사용 사례를 기반으로 내 사용자 정의 솔루션의 루비 코드입니다. 그것에 따라 업데이트 된 질문. 당신의 해결책을 확인해 줄 것입니다. –

+0

훌륭하게 끝내고, 별표를 붙였습니다. 어떻게 든 개선 할 수 있습니다. –

+0

답변을 편집하고 솔루션이 Ruby로 작성되었다고 추가하는 것이 좋습니다. 내 질문에도 루비를 사용하지만 다른 언어의 사용을 고려하여 다른 대답이있을 수도 있습니다. –