неправильно названное исключение - PullRequest
0 голосов
/ 25 ноября 2011
class B12 < Thor
  desc "write", "write data into the index"
  method_option :methods, :desc => "The methods to call on each RawData", :type => :array
  def write(methods)
  end
end

Когда я вызываю файл через

thor b12:write --methods=foo

Я получаю

"write" was called incorrectly. Call as "thor b12:write".

Где проблема?

1 Ответ

0 голосов
/ 19 января 2012

У вас здесь происходит пара вещей, которые могут вызвать проблемы.

Во-первых, вы используете methods, которое является ключевым словом в ruby. Это вызовет всякую чушь. Используйте что-нибудь еще, например my_methods.

Во-вторых, вам не нужно передавать my_methods в запись. Это создает параметр по умолчанию, а не именованный параметр. Таким образом, вы бы позвонили thor b12:write foo, если вам нужен доступ к my_methods в этом контексте.

Это работает, если вы называете это с: thor b12:write --my_methods=foo

class B12 < Thor
  desc "write", "write data into the index"
  method_option :my_methods, :type => :array, :desc => "The methods to call on each RawData"
  def write
    puts options.my_methods
  end
end
...