0

这是我第一次使用 OptionParser,我收到了这个错误:

/Users/jay/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/mechanize-> 2.7.3/lib/mechanize/http/agent.rb:651:in resolve': absolute URL needed (not -v) (ArgumentError)from /Users/jay/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/mechanize-2.7.3/lib/mechanize/http/agent.rb:223:infetch' from /用户/jay/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/mechanize-2.7.3/lib/mechanize.rb:440:in get' from /Users/jay/Code/linkedin-scraper/lib/myModel-scraper/profile.rb:20:ininitialize' 来自 ./bin/myModel-scraper :6:在new' from ./bin/myModel-scraper:6:in'

垃圾桶:

require 'rubygems'
require 'optparse'

opts = OptionParser.new do |opts|
 opts.on_tail("-v", "--version", "Show version") { puts myModel::Scraper::VERSION; exit }
 opts.parse!
end

库/版本:

module myModel
  module Scraper
    VERSION = '0.1.2'
  end
end

我想我这样做完全错了,有人可以解释这里发生了什么吗?

4

1 回答 1

0

我通常会像这样编写一个 OptionParser 块:

OptionParser.new do |opts|
  opts.on_tail("-v", "--version", "Show version") { puts myModel::Scraper::VERSION; exit }
end.parse!

我可能会使用on而不是on_tail

opts.on("-v", "--version", "Show version") { puts myModel::Scraper::VERSION; exit }

但我理解您为什么希望它出现在帮助列表的末尾。

于 2014-08-26T18:14:18.700 回答