2016-11-09 32 views
1

所以我想这是有关我的最后question,但我想知道是否有方法通过使用命令行选项调用方法。说你有这样的方法:使用命令行选项来调用方法

def b 
puts "Hello brian" 
end 

有写东西像这样的方式:

ruby mine.rb -b 

,并得到这个

Hello brian 

我已经尝试过寻找这个在线发现了OptionParser,但我还没有发现任何涉及调用以前创建的方法的OptionParser。

回答

1

有很多方法可以做到这一点,这取决于用例。以下代码取自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 

我也是那个会自动调用红宝石顶部增加了一个家当。只要脚本文件是可执行的,您可以直接调用它(例如,./mine.rb -b)。

+0

哦,我明白了!非常感谢! – yukimoda