!Mac OS X-10.15.7!ruby-2.7.1p83
thor
Wenn Sie versuchen, mehrere Verhaltensweisen in einem Befehl zu haben, müssen Sie die Optionen richtig behandeln. Dafür gibt es mehrere Juwelen des CLI-Builders. Sie können die Popularität unter http://52.198.30.45/categories/CLI+Builder überprüfen. Hier stellen wir thor vor. Dies kann mit einem DSL ähnlich wie Rakefile erreicht werden.
Als allererstes
gem install thor
Bitte.
des Weiteren,
require 'thor'
require "hello_rudy/version"
class HelloRudyCLI < Thor
desc "hello NAME", "say hello to NAME"
def hello(name)
puts "Hello " + name
end
end
HelloRudyCLI.start(ARGV)
Wenn Sie es korrigieren, wird es fast funktionieren. Die CLI-Zeichenfolge muss am Ende des Klassennamens stehen.
Ändern Sie den folgenden Bereich, damit es ordnungsgemäß funktioniert.
> in hello_rudy.gemspec
spec.add_runtime_dependency('thor')
> bundle update
> bundle install
> cat lib/hello_rudy/version.rb
class HelloRudy #
VERSION = "0.1.0"
end
Es ist fertig.
Wenn ich versuche, es mit Bundle auf lokal zu verschieben
> bundle exec exe/hello_rudy
Commands:
hello_rudy hello NAME # say hello to NAME
hello_rudy help [COMMAND] # Describe available commands or one specific command
> bundle exec exe/hello_rudy hello Rudy
Hello Rudy
Es funktioniert wie eine CLI.
Sie können es auch von verschiedenen Stellen aus durch Rake-Installation verwenden. Thor wird auch in Rubin auf Schienen verwendet. Ich frage mich, ob es auch Schwachsinn war. .. .. Eine ausführliche Erklärung finden Sie unter https://github.com/erikhuda/thor/wiki. Meine \ _Hilfe und Qiita \ _org verwenden Thor.
rubocop
Kurze Einleitung
Schauen Sie sich das eigentliche Github-Problem an. https://github.com/rubocop-hq/rubocop/issues/4644