所以我猜这与我上一次question有关,但我想知道是否有办法通过命令行选项调用方法。假设您有这样的方法:
def b
puts "Hello brian"
end
有没有办法写这样的东西:
ruby mine.rb -b
得到这个
Hello brian
我已经尝试在线查找并发现了OptionParser,但我还没有发现涉及OptionParser调用先前创建的方法的任何内容。
答案 0 :(得分:2)
根据用例,有很多方法可以做到这一点。下面的代码取自Ruby docs,并添加了额外的方法。
实际上,您可能想要一个处理不同选项的类,并封装该方法,而不是将它们放在文件范围内。
#!/usr/bin/env ruby
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-b", "Run method 'b'") do |v|
options[:b] = true
end
end.parse!
def b
puts "Hello Brian"
end
if options[:b]
b
end
我还在顶部添加了一个自动调用ruby的shebang。只要您的脚本文件是可执行文件,您就可以直接调用它(即。./mine.rb -b
)。