使用嵌入字符串作为变量名称

时间:2015-02-20 02:55:49

标签: ruby

我有一个YAML文件,它使用编码__firstname__作为占位符,表示应该使用现有方法firstname,而不是后续流程中的文字字符串。

我正在努力了解最明智的方法来做到这一点。基本上,我需要提取下划线之间的部分并将其发送到对象。这是伪代码:

variable = '__firstname__'
if variable is prefixed and suffixed with underscores
   result = object.send(variable.removeunderscores)
else
   result = variable
end

puts result

我打算像这样在程序上写这个,但是如果只有我更了解语言,这就是我认为ruby不那么笨拙的事情。

什么是干净的为什么写这个?

1 个答案:

答案 0 :(得分:1)

如果能够清楚地阅读IMO,那么详细的代码没有错。

我使用String#start_with?String#end_with?做了类似的事情:

variable = '__firstname__'
if variable.start_with?("__") && variable.end_with?("__")
   result = object.send(variable[2...-2])
else
   result = variable
end