Techioz Blog

Thor でのコマンド エイリアス

概要

Thor でコマンドのエイリアスを作成することはできますか?

Commander のコマンド エイリアスとよく似ています。 https://github.com/tj/commander#command-aliasing

オプションのエイリアスは見つかりますが、コマンド自体のエイリアスは見つかりません。

トールの例を使用すると、

#!/usr/bin/env ruby
require 'thor'

# cli.rb
class MyCLI < Thor
  desc "hello NAME", "say hello to NAME"
  def hello(name)
    puts "Hello #{name}"
  end
end

MyCLI.start(ARGV)

走れるはずだ

$ ./cli.rb hello John
Hello John

コマンド「hello」も「hi」にエイリアスしたいと思います。

解決策

これにはマップを使用できます。

http://www.rubydoc.info/github/wycats/thor/master/Thor#map-class_method

#!/usr/bin/env ruby
require 'thor'

# cli.rb
class MyCLI < Thor

  desc "hello NAME", "say hello to NAME"
  def hello(name)
    puts "Hello #{name}"
  end

  map 'hi' => :hello
end

MyCLI.start(ARGV)