Ruby OptionParser выдает ArgumentError
Я впервые использую 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: в
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:in
fetch'из /Users/jay/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/mechanize-2.7.3/lib/mechanize.rb:440:inget' from /Users/jay/Code/linkedin-scraper/lib/myModel-scraper/profile.rb:20:in
initialize 'из./bin/myModel-scraper:6:innew' from ./bin/myModel-scraper:6:in
'
Bin:
require 'rubygems'
require 'optparse'
opts = OptionParser.new do |opts|
opts.on_tail("-v", "--version", "Show version") { puts myModel::Scraper::VERSION; exit }
opts.parse!
end
Lib / версия:
module myModel
module Scraper
VERSION = '0.1.2'
end
end
Я думаю, что я делаю это совершенно неправильно, кто-нибудь может объяснить, что здесь происходит?
1 ответ
Я обычно пишу блок 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 }
но я понимаю, почему вы можете захотеть, чтобы он появился в конце списка справки.