从Excel工作表中读取方法名称

时间:2014-03-01 13:06:30

标签: ruby-on-rails ruby

我想从excel表中读取一个方法并将其与Class连接,这里是我的代码

book = Spreadsheet.open 'path/to/myexcel'
book.worksheets
sheet1 = book.worksheet 'Sheet1'
tcname = sheet1.cell(1,0)
TestCases.new.tcname 

连接问题..任何人都有任何想法如何连接这个变量?

1 个答案:

答案 0 :(得分:0)

假设TestCases.new返回一个字符串:

"#{TestCases.new}#{tname}" # this is technically interpolation

TestCases.new + tname # this is concatenation

[TestCases.new, tname].join # this is also concatenation

所有3应该有相同的结果。

[编辑]

根据您发布的评论,在我看来,您可能正在询问的是如何使用tcname的值作为发送到TestCases实例的方法。

如果是这种情况,你可以这样做:

TestCases.new.send(tcname)

虽然如果电子表格的来源不可信,但这在安全方面是不好的,最好从预先批准的可用方法白名单中选择,如下所示:

available_methods = ['upcase', 'name', 'to_sentence', 'Login_Click']
method_to_call = available_methods.detect{|m| m == tcname }
TestCases.new.send(method_to_call) if method_to_call