[RUBY] Diagrammtyp Rubin-Anhang-VI (Thor, Rubocop)

!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


Recommended Posts

Diagrammtyp Rubin-Anhang-VI (Thor, Rubocop)
Diagrammtyp Ruby
Diagrammtyp Ruby-Anhang-III (Bündler)
Diagrammtyp Ruby-I (Puts)
Diagrammtyp Rubin-Anhang-IV (Rechen)
Diagrammtyp Ruby-Anhang-V (Rubular)
Diagrammtyp Ruby-Anhang-I (Bash + Emacs)