.yml 파일에서 Magick :: StyleType 상수를 선언하고이 상수를 루비 파일에로드 할 가능성을 찾고 있습니다. 아니면 불가능하다면 String을 Magick :: StyleType 상수로 변환하는 방법을 알아야합니다.YAML 파일에서 루비 상수 (RMagick)를 선언하는 방법
여기에 세부 사항은 다음과 같습니다 제가 사진에 텍스트를 배치 루비 프로그램을 작성하는 것을 시도하고있다
나는 그것을 위해 RMagick 인터페이스를 사용합니다. 루비 프로그램에는 font-family 또는 font-style과 같은 텍스트의 여러 속성을 지정하는 메서드가 있습니다. 이 방법은 라인이 포함
self.font_style = ItalicStyle
지금 내가 YAML-config 파일 (config.yml)의 모든 변경 매개 변수를 저장할를, 그래서이 config.yml는이 라인을 포함 : 이제
#font style (like bold, italic and so on)
:font_style: ItalicStyle
을 내 루비 파일에 config.yml을로드하고 내 방법 위에서 언급 한 라인은
self.font_style = config_file[:font_style]
지금 읽고 난 지금 내 루비 파일을 실행할 때 나는 오류 메시지 :
`font_style=': wrong enumeration type - expected Magick::StyleType, got String (TypeError)
그래서 가진 후 나는 위와 같이 나에게 같은 오류 메시지를 받았습니다
:font_style: !/ruby/constant ItalicStyle
먼저 내 config.yml을 변경 한 주제에 대해 약간의 검색 후, 나는이 시도 :
:font_style: !/ruby/symbol :ItalicStyle
을
이 오류 메시지를 받았습니다 :
`font_style=': wrong enumeration type - expected Magick::StyleType, got Symbol (TypeError)
N 내가 IRB 체크 :
require 'rmagick' => true
Magick.const_get(ItalicStyle) => ItalicStyle=2
Magick.const_get(ItalicStyle).class => Magick::StyleType
그래서 결국 나는 내 질문에 도착 : 어떻게 내 루비에로드 할 때 수 있도록 내 config.yml 파일에 라인을
:font_style: !/ruby/symbol :ItalicStyle
를 변경해야합니까 파일 ItalicStyle은 Magick :: StyleType 상수로 인식됩니까? 나는 config.yml에서
:font_style: ItalicStyle
을 떠나 내 루비 파일에 String로서 ItalicStyle를로드 할 때
또는 : 가능성은 마법 (magick) 캐릭터 라인으로부터 ItalicStyle 변환,이 :에 StyleType 상수 직접 루비 파일?
누군가가 도울 수 있다면 정말 행복 할 것입니다. 나는 해결책을 찾기 위해 며칠 째 노력했고, 나는 나의 프로젝트를 위해 그것을 정말로 필요로한다.즉 쓰기 및 읽기 쉽기 때문에
yaml에 기본값을 덤핑하여 잘못된 모양을 확인하는 것이 잘못된 이유는 무엇입니까? 적절한 해결책은 아래의 @spickermann의 답을 참조하십시오. – mudasobwa