2011-12-21 12 views
1

不知道这是可能的,但我可以调用一个参数之间的空格而不是逗号(不问)的空间的IRB shell的方法吗?比方说,我有一个方法调用红宝石空间方法参数

def start_band(member1, member2, member3, member4) 
    #do something 
end 

然后我把它像下面这样:

irb>> start_band "John" "Paul" "George" "Ringo" 

编辑:是否可以检测到每一个按键呢?

回答

0

Durr!我真的以错误的方式接近了这一点。我只需要运行

@members = gets 

以允许根据需要输入。尽管如此,感谢您的答复。

2

不,你不能这样做。无论如何都不带字符串。

0

您可以使用像treetop写一个非常简单的DSL,或者只是玩猴子解析游戏,但不会解决你的问题相关的编号。

另一个明显的答案是这样的,这也将失败:

irb>> start_band %W(John Paul George Ringo) 

创建IRB样CLI并不难,而且可能就足够了,根据您的实际需求是什么。

0

实际上有一个非常简单的方法来摆脱逗号。你甚至可以摆脱行情的,太:

def start_band(members) 
    #members is an array 
end 

start_band %w(John Paul George Ringo) 

的限制是你不能使用空格你的字符串里面,你仍然需要启动终止端(虽然可以使用其它字符而不是括号) 。

+1

你可以在字符串中使用空格,你只需要转义它们:'>>%w [foo \ bar]#=> [“foo bar”]'。 – 2011-12-21 15:57:04