Thor中的命令别名

时间:2015-02-13 16:37:55

标签: ruby thor

是否可以在Thor中为命令创建别名?

很像Commander中的命令别名。 https://github.com/tj/commander#command-aliasing

我能够找到选项的别名,但不能找到命令本身。

使用Thor的例子,

#!/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

我想命名命令&#34;你好&#34;到&#34;嗨&#34;同样。

2 个答案:

答案 0 :(得分:8)

您可以使用地图:

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)

答案 1 :(得分:-3)

method_option 用于别名。

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

    # cli.rb
    class MyCLI < Thor
      desc "hello NAME", "say hello to NAME"
      method_option :hello , :aliases => "-hello" , :desc => "Hello Command" 
      def hello(name)
        puts "Hello #{name}"
      end
    end

    MyCLI.start(ARGV)