1

所以我想这与我的最后一个问题有关,但我想知道是否有办法通过使用命令行选项来调用方法。假设您有这样的方法:

def b
puts "Hello brian"
end

有没有办法写这样的东西:

ruby mine.rb -b 

得到这个

Hello brian

我已经尝试在网上寻找这个并发现了 OptionParser 但我还没有发现任何涉及调用先前创建的方法的 OptionParser 的东西。

4

1 回答 1

2

有很多方法可以做到这一点,具体取决于用例。下面的代码取自 Ruby文档,并添加了额外的方法。

实际上,您可能需要一个处理不同选项并封装方法的类,而不是将它们放在文件范围内。

#!/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)。

于 2016-11-09T01:23:07.543 回答