2011-12-21 3 views
1

Не уверен, что это возможно, но могу ли я вызвать метод из оболочки irb с пробелами между параметрами, а не запятыми (не спрашивать)? Допустим, у меня есть методВызов метода Ruby с параметрами, разделенными пробелом

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

И тогда я называю это вроде следующего:

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

EDIT: Будет ли возможность обнаружить все нажатия клавиши вместо этого?

ответ

0

Durr! Я действительно подошел к этому неправильно. Мне просто нужно было запустить

@members = gets 

чтобы разрешить ввод при необходимости. Спасибо за ответы, тем не менее.

2

Нет, вы не можете этого сделать. В любом случае, не со струнами.

0

No.

Вы могли бы использовать что-то вроде treetop написать очень простой DSL, или просто играть обезьяна разбора игры, но это не решит ваш точный вопрос.

Другой очевидный ответ таков, что также не:

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

Создание IRB-подобный интерфейс командной строки не сложно, и может быть адекватным, в зависимости от того, что ваши фактические требования.

0

На самом деле существует очень простой способ избавиться от запятых. Вы можете даже избавиться от кавычек, тоже:

def start_band(members) 
    #members is an array 
end 

start_band %w(John Paul George Ringo) 

ограничение в том, что вы не можете использовать пробелы в ваших строк, и вы по-прежнему необходимо начать класса окончаний (можно использовать и другие символы вместо скобок, хотя) ,

+1

Вы можете использовать пробелы внутри строк, вам просто нужно их избежать: '>>% w [foo \ bar] # => [" foo bar "]'. –