Ich habe eine Methode, die einen String-Option enthält Leerzeichen nimmt:Wie akzeptieren Leerzeichen in String-Methode Optionen
desc 'events', 'List events'
method_option :since, :desc => 'Show events since', :default => "2 years ago"
def events
# ...
end
aber es scheint, dass die Parameter naiverweise auf Leerzeichen aufgeteilt werden, damit ich diese Fehlermeldung erhalten:
$ example events --since="1 hour ago"
ERROR: "example events" was called with arguments ["hour", "ago"]
Usage: "example events"
Wenn ich den Typ in Array ändern, kann ich es den vollen Wert akzeptieren, aber das ist nicht genau das, was ich habe.
Jeder Rat würde geschätzt werden.
bearbeiten
@mrlew ‚s Antwort zeigte, dass mein Fehler kein Thor Problem war, und es machte mich zurück zu gehen und meine Annahmen überprüfen. Ich benutze die Thor CLI statt Thor-Module, und in meinem Wrapper-Skript war ich nicht handling args correctly. Ich musste nur ${@}
in Anführungszeichen wie unten umbrechen, und jetzt funktioniert alles wie erwartet.
#!/usr/bin/env bash
ruby -Ilib ./exe/example "${@}"
Dank @mrlew :)