Skip to content

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

Merged
jnunemaker merged 1 commit into
jnunemaker:masterfrom
bradgessler:master
Mar 3, 2014
Merged

Initialize HTTParty requests with an URI object and a String.#274
jnunemaker merged 1 commit into
jnunemaker:masterfrom
bradgessler:master

Conversation

@bradgessler

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