ruby Thor中的命令别名

dy1byipe  于 2023-11-18  发布在  Ruby
关注(0)|答案(2)|浏览(119)

可以为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”。

ltskdhd1

ltskdhd11#

你可以使用map:
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)

字符串

kmbjn2e3

kmbjn2e32#

别名使用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)

字符串

相关问题