雷神中的命令别名
Command Aliasing in 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)
使用 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)
是否可以在 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)
使用 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)