Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Initialize HTTParty requests with an URI object and a String. #274

Merged
merged 1 commit into from

2 participants

@bradgessler

Change URI.parse(uri) to URI(uri) so that HTTParty consuming code can make requests with:

uri = URI('http://www.google.com/')
HTTParty.get(uri)

as opposed to

uri = URI('http://www.google.com/')
HTTParty.get(uri.to_s)

without throwing and invalid URI exception.

@jnunemaker
Owner

Seems sane. Not sure why we would force to_s. I'll merge and hope I don't break anything. :)

@jnunemaker jnunemaker merged commit 036b783 into from
@bradgessler

@jnunemaker thanks!

FYI: here's the "why" for the to_s I was talking about.

irb(main):001:0> require 'uri'
=> true
irb(main):002:0> google = URI.parse('http://google.com/')
=> #<URI::HTTP:0x007fe4821a1620 URL:http://google.com/>
irb(main):003:0> URI(google) # The new way, it just works!
=> #<URI::HTTP:0x007fe4821a1620 URL:http://google.com/>
irb(main):004:0> URI.parse(google) # Oh no! URI.parse requires a string
URI::InvalidURIError: bad URI(is not URI?): http://google.com/
    from /Users/bradgessler/.rbenv/versions/2.1.0/lib/ruby/2.1.0/uri/common.rb:176:in `split'
    from /Users/bradgessler/.rbenv/versions/2.1.0/lib/ruby/2.1.0/uri/common.rb:211:in `parse'
    from /Users/bradgessler/.rbenv/versions/2.1.0/lib/ruby/2.1.0/uri/common.rb:747:in `parse'
    from (irb):4
    from /Users/bradgessler/.rbenv/versions/2.1.0/bin/irb:11:in `<main>'
irb(main):005:0> URI.parse(google.to_s) # Ewww...
=> #<URI::HTTP:0x007fe481967ef0 URL:http://google.com/>

URI.parse demands a string, URI is cool with a string and an URI.

@jnunemaker
Owner

Yep, I got what you were saying. It really should be fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
Showing with 1 addition and 1 deletion.
  1. +1 −1  lib/httparty/request.rb
View
2  lib/httparty/request.rb
@@ -43,7 +43,7 @@ def initialize(http_method, path, o={})
end
def path=(uri)
- @path = URI.parse(uri)
+ @path = URI(uri)
end
def request_uri(uri)
Something went wrong with that request. Please try again.