使用命令行选项调用方法
Use a command line option to call a method
所以我想这与我的上一个 有点相关,但我想知道是否有一种方法可以通过使用命令行选项来调用方法。假设您有这样的方法:
def b
puts "Hello brian"
end
有没有办法写这样的东西:
ruby mine.rb -b
得到这个
Hello brian
我已经尝试在线查找并发现了 OptionParser,但我还没有发现任何涉及 OptionParser 调用先前创建的方法的内容。
有很多方法可以做到这一点,具体取决于用例。下面的代码取自 Ruby docs 添加了额外的方法。
实际上,您可能需要一个 class 来处理不同的选项并封装方法,而不是将它们放在文件范围内。
#!/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
我还在顶部添加了一个 shebang,它会自动调用 ruby。只要您的脚本文件是可执行的,您就可以直接调用它(即 ./mine.rb -b
)。
所以我想这与我的上一个
def b
puts "Hello brian"
end
有没有办法写这样的东西:
ruby mine.rb -b
得到这个
Hello brian
我已经尝试在线查找并发现了 OptionParser,但我还没有发现任何涉及 OptionParser 调用先前创建的方法的内容。
有很多方法可以做到这一点,具体取决于用例。下面的代码取自 Ruby docs 添加了额外的方法。
实际上,您可能需要一个 class 来处理不同的选项并封装方法,而不是将它们放在文件范围内。
#!/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
我还在顶部添加了一个 shebang,它会自动调用 ruby。只要您的脚本文件是可执行的,您就可以直接调用它(即 ./mine.rb -b
)。