2013-02-01 4 views
-1

루비에서 들여 쓰기 기반 해시를 도입 할 수 있습니까? coffescript 해시 같은 것.들여 쓰기를 기반으로하는 Ruby 해시

a: 1 
    b: 
    c: 3 
    d: 4 
    e: 
    f: 'qwe' 
+3

아니요, 그렇게 할 수 없습니다. –

+0

모든 솔루션은 저에게 '전처리'기술을 사용하여 보았습니다. – FUT

답변

1

:

require 'psych' 
require 'yaml' 

yash = <<EOT # type hashes like this 
--- 
:a: 
- 1 
- :b: 
    :c: 3 
    :d: 4 
    :e: 
    :f: qwe 
EOT 

hash = YAML.load yash 
=> {:a=>[1, {:b=>{:c=>3, :d=>4}, :e=>{:f=>"qwe"}}]} 
4

직접 입력하지 마시고 YAML으로 보내주십시오.

@AJcodez가 제안 그래, 당신은 구분 기호로 들여 쓰기를 사용하여 문자열에서 해시를 구문 분석하는 방법을 구현하거나 할 수 있습니다
+0

물론이 솔루션에 대해 생각했지만 내 목표는 단일 파일에서 가장 얇은 해시 정의와 루비 코드를 결합하는 것입니다. 감사! – FUT

+1

@ FUT : 루비에 대한 coffeescript analog를 작성할 수 있습니다. 여기에는 들여 쓰기 기반의 구문 및 기타 등이 있습니다. 이름을 에메랄드 또는 이와 비슷한 이름으로 지정하십시오. –

+0

@SergioTulentsev nice joke! :디 – FUT

0

당신이 당신의 눈을 곁눈질하고 소원을 경우 다음 일반 구문은 당신이 찾고있는 것과 비슷한 종류.

h = { a: 1, 
     b:{ 
      c: 3, 
      d: 4}, 
     e:{ 
      f: 'qwe'}} 
관련 문제