Bug #7973

[doc] net/http URI passed to Net::HTTP::Post.new or Net::HTTP::Get.new errors NoMethodError: undefined method `empty?'

Added by Daniel Black about 1 year ago. Updated about 1 year ago.

[ruby-core:52956]
Status:Rejected
Priority:Normal
Assignee:Zachary Scott
Category:doc
Target version:-
ruby -v:ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-linux] Backport:

Description

http://www.ruby-doc.org/stdlib-2.0/libdoc/net/http/rdoc/Net/HTTP.html documents a URI object being passed to Net::HTTP::Get.new and Net::HTTP::Post.new a few times.

passing a URI to Net::HTTP::Post.new or Net::HTTP::Get.new throws a NoMethodError as the URI doesn't have an empty method.

(({1.9.3p385 :040 > uri = URI('http://www.example.com/search.cgi')
=> #
1.9.3p385 :041 > req = Net::HTTP::Post.new(uri)
NoMethodError: undefined method empty?' for #<URI::HTTP:0x000000024ed098>
from /usr/local/redmine-new/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/http.rb:1860:in
initialize'
from /usr/local/redmine-new/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/http.rb:2093:in initialize'
from (irb):41:in
new'
from (irb):41
from /usr/local/redmine-new/.rvm/rubies/ruby-1.9.3-p385/bin/irb:16:in <main>'
1.9.3p385 :042 > req = Net::HTTP::Get.new(uri)
NoMethodError: undefined method
empty?' for #URI::HTTP:0x000000024ed098
from /usr/local/redmine-new/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/http.rb:1860:in initialize'
from /usr/local/redmine-new/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/http.rb:2093:in
initialize'
from (irb):42:in new'
from (irb):42
from /usr/local/redmine-new/.rvm/rubies/ruby-1.9.3-p385/bin/irb:16:in
'
}))

also fails in ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]

History

#1 Updated by Daniel Black about 1 year ago

a combined uri.path and uri.query (if exists) is needed

Net::HTTP::Get.new uri.path + '?' + uri.query

I probably should also request that URI has a method to returns path + query as it would make a lot of sense in these examples.

#2 Updated by Eric Hodel about 1 year ago

  • Description updated (diff)
  • Status changed from Open to Rejected

danblack (Daniel Black) wrote:

http://www.ruby-doc.org/stdlib-2.0/libdoc/net/http/rdoc/Net/HTTP.html documents…

You must use ruby 2.0.0 features on ruby 2.0.0. Please upgrade your ruby.

#3 Updated by Zachary Scott about 1 year ago

See the following documentation for 1.9.3: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/net/http/rdoc/Net/HTTP.html

You must pass uri.path or uri.request_uri in 1.9

Also available in: Atom PDF