On Sat, Dec 1, 2012 at 7:24 PM, David Madison <lists / ruby-forum.com> wrote: > Here's a workaround that fixes URI.parse. > > I didn't feel like rewriting the entire split, so I escaped out the '_' > in the URL with a legal string. > > This will work great as long as you don't find a domain that has "_" > *and* the string "UNDERLINEuriSplitISbrokenUNDERLINE" in it. That seems > like a reasonable premise for a kludgy hack fix. :) > > See attached file if you have problems with cut-and-paste because of the > line wrap: > > require 'uri' > > # Fix for broken URI.parse (doesn't allow '_' in subdomains) > module URI > class << self > alias origsplit split > def split(uri) > return origsplit(uri) unless > uri.gsub!(/^([^:]+:\/\/[^\/]+)_/,'\1UNDERLINEuriSplitISbrokenUNDERLINE') > fix = origsplit(uri) > fix[2].gsub!(/UNDERLINEuriSplitISbrokenUNDERLINE/,'_') > fix > end > end > end > > puts URI.parse("http://whatever.domain.com") > puts URI.parse("http://whatever_again.domain.com") > > Attachments: > http://www.ruby-forum.com/attachment/7919/urifix.rb > > > -- > Posted via http://www.ruby-forum.com/. > Underscores aren't valid in domain names..., just a-z, 0-9, and -