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