Type de graphique ruby-appendix-VI (thor, rubocop)

!Mac OS X-10.15.7!ruby-2.7.1p83

thor

Si vous essayez d'avoir un comportement dans une seule commande, vous devez gérer les options correctement. Il existe plusieurs joyaux de construction CLI pour cela. Vous pouvez vérifier la popularité sur http://52.198.30.45/categories/CLI+Builder. Ici, nous allons vous présenter thor. Ceci peut être réalisé avec un DSL similaire à Rakefile.

Tout d'abord

gem install thor

S'il vous plaît.

plus loin,

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)

Si vous le corrigez, cela fonctionnera presque. La chaîne CLI doit être à la fin du nom de la classe.

Pour le faire fonctionner correctement, modifiez la zone ci-dessous.

> 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

C'est fait.

Quand j'essaye de le déplacer en local avec le bundle

> 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

Cela fonctionne comme une CLI.

Vous pouvez également l'utiliser à partir de divers endroits par rake install. Thor est également utilisé en rubis sur rails. Je me demande si c'était git aussi. .. .. Il y a une explication détaillée sur https://github.com/erikhuda/thor/wiki. my \ _help et qiita \ _org utilisent thor.

rubocop

Courte introduction

Jetez un œil au problème réel de github. https://github.com/rubocop-hq/rubocop/issues/4644


Recommended Posts

Type de graphique ruby-appendix-VI (thor, rubocop)
Type de graphique Rubis
Type de graphique ruby-appendix-III (bundler)
Type de graphique ruby-I (met)
Type de graphique ruby-appendix-IV (rake)
Type de graphique ruby-appendix-V (rubular)
Type de graphique ruby-appendix-I (bash + emacs)