Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Mar 3, 2014

Conversation

bradgessler
Copy link
Contributor

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
Copy link
Owner

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

jnunemaker pushed a commit that referenced this pull request Mar 3, 2014
Initialize HTTParty requests with an URI object and a String.
@jnunemaker jnunemaker merged commit 036b783 into jnunemaker:master Mar 3, 2014
@bradgessler
Copy link
Contributor Author

@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
Copy link
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants