0
我有點奇怪的情況。如果我使用散列,這個問題很容易,但是,我試圖在Ruby中使用「OpenStruct」,因爲它提供了一些非常酷的功能。(Ruby)將字符串值轉換爲OpenStructs的可分配屬性...?
基本上,我認爲我需要「常量化」一個返回值。我有一個正則表達式:
textopts = OpenStruct.new()
textopts.recipients = []
fileparts = fhandle.read.split("<<-->>")
fileparts[0].chomp.each{|l|
if l =~ /Recipient.*/i
textopts.recipients << $&
elsif l =~ /(ServerAddress.*|EmailAddress.*)/i
textopts.$& = $&.split(":")[1]
end
}
我需要一種方法來打開$ &爲「textopts」爲有效的屬性填充。我試過「constantize」和其他一些,但沒有任何工作。我會認爲這是可能的,但也許我錯了。顯然,如果我使用散列,我可以做「textopts [$ &] = .....」。
任何想法?
謝謝你。請定義「正確的解析器」。我基本上用電子郵件做了一些小事,並通過Ruby的NET :: SMTP模塊發送。我使用OptionParser來處理命令行項目,但我正在閱讀實際的文本文件。我期望在文本文件頂部存在某些參數,並且只需手動抓取這些項目,其餘部分實際上是電子郵件本身,將被「搶走」併發送出去。 – 2009-07-24 14:21:34