У меня есть метод, который принимает параметр строку, содержащую пробелы:Как принимать пробелы в параметрах метода строковых
desc 'events', 'List events'
method_option :since, :desc => 'Show events since', :default => "2 years ago"
def events
# ...
end
но мне кажется, что параметры простодушно делится на пробельных так что я получаю эту ошибку:
$ example events --since="1 hour ago"
ERROR: "example events" was called with arguments ["hour", "ago"]
Usage: "example events"
Если я изменю тип на массив, я могу заставить его принять полное значение, но это не совсем то, что я хочу.
Любые советы будут оценены.
Редактировать
@mrlew «s ответ показал, что моя ошибка была не проблема Thor, и это заставило меня вернуться и проверить свои предположения. Я использую модули Thor CLI, а не Thor, и в моем сценарии оболочки я не был handling args correctly. Мне просто нужно было обернуть ${@}
в двойных кавычках, как показано ниже, и теперь все работает так, как ожидалось.
#!/usr/bin/env bash
ruby -Ilib ./exe/example "${@}"
Благодаря @mrlew :)