我对红宝石还很陌生。我正在尝试使用 optparse 来影响我的代码执行方式。我想将 optparse 的结果添加到我的课程中,这样我就可以在其上建立一些条件。
我花了好几个小时在谷歌上搜索(optparse、attr_accessor),并以一种试错的方式尽可能地实现了结果。
下面,我试图提供一个最小的工作示例。如果任何语法或演示文稿关闭,我深表歉意......
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-v", "--verbose", "Adopt verbose policy") do |v|
options[:verbose] = v
end
end.parse!
@options = options
class Chatty
def initialize
puts "We're gonna be verbose" if @options[:verbose]
end
end
Chatty.new
问题是 @options 在类中为零。这会导致 NoMethodError。
# ...in `initialize': undefined method `[]' for nil:NilClass (NoMethodError)
但我不知道如何解决这个问题。