是否可以在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;同样。
答案 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)