I’m trying to use a site called zendesk.com and you authenticate to the
site
using an email address and a password, so that the self.site definition
in
the model looks like this:
The problem with this is, because we have the @ sign in our username,
Ruby
thinks this to be an invalid URL so throws a big hissy fit:
URI::InvalidURIError: bad URI(is not URI?):
from /usr/lib/ruby/1.8/uri/common.rb:436:in split' from /usr/lib/ruby/1.8/uri/common.rb:485:inparse’
from
/usr/lib/ruby/gems/1.8/gems/activeresource-2.0.2/lib/active_resource/base.rb:477:in create_site_uri_from' from /usr/lib/ruby/gems/1.8/gems/activeresource-2.0.2/lib/active_resource/base.rb:167:insite=’
from /home/ryan/projects/site/app/models/user.rb:2
from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in load_without_new_constant_marking' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:inload_file’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in new_constants_in' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:202:inload_file’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:94:in require_or_load' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:248:inload_missing_constant’
from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:453:in const_missing' from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:465:inconst_missing’
from (irb):1
The command line curl has no such complaint however.
I’m trying to use a site called zendesk.com and you authenticate to
the site using an email address and a password, so that the
self.site definition in the model looks like this:
The problem with this is, because we have the @ sign in our
username, Ruby thinks this to be an invalid URL so throws a big
hissy fit:
URL Encode the @ (%40) ?
That returns a 401. I think it may be passing in the %40 as part of the
username.
On Mon, May 12, 2008 at 5:17 PM, Frederick C. < [email protected]> wrote:
The problem with this is, because we have the @ sign in our
active_resource/base.rb:477:in `create_site_uri_from’
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/
The command line curl has no such complaint however.
That didn’t work. I already tried it before making my post.
It appears that you can set site to either a string or an instance of
URI. If rails’/ruby’s parsing of a url string is tripping up in this
case maybe the latter option is worth exploring?
As in URI.parse? That fails too, with an identical error.
On Mon, May 12, 2008 at 8:12 PM, Frederick C. < [email protected]> wrote:
Fred
The problem with this is, because we have the @ sign in our
active_resource/base.rb:477:in `create_site_uri_from’
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/
As in URI.parse? That fails too, with an identical error.
No, I was thinking along the lings of
some_uri = URI.parse(‘http://myplace.zendesk.com’)
some_uri.user = ‘xxx’
some_uri.password = ‘zzz’
self.site = some_uri
irb(main):005:0> uri.user = ‘[email protected]’
URI::InvalidComponentError: bad component(expected userinfo component or
user component): [email protected]
from c:/ruby/lib/ruby/1.8/uri/generic.rb:269:in check_user' from c:/ruby/lib/ruby/1.8/uri/generic.rb:311:inuser=’
from (irb):5
On Mon, May 12, 2008 at 10:31 PM, Frederick C. < [email protected]> wrote:
self.site = some_uri
That didn’t work. I already tried it before making my post.
That returns a 401. I think it may be passing in the %40 as part
I’m trying to use a site called zendesk.com and you authenticate
URL Encode the @ (%40) ?
lib/
lib/
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/
Feel free to add me to MSN and/or GTalk as this email.
Feel free to add me to MSN and/or GTalk as this email.
Feel free to add me to MSN and/or GTalk as this email.
irb(main):005:0> uri.user = ‘[email protected]’
URI::InvalidComponentError: bad component(expected userinfo
component or user component): [email protected]
from c:/ruby/lib/ruby/1.8/uri/generic.rb:269:in check_user' from c:/ruby/lib/ruby/1.8/uri/generic.rb:311:inuser=’
from (irb):5
Beginning to look like you’re walking down an unfrequently used
path :-). If URI is expecting @ to be encoded as %40, then I suppose
its rails’ responsability to convert the %40 into a @ when
constructing the authorization header.
Override authorization_header so that the correct header is produced ?
This might even work:
Yeah definitely. I’ve got a model inheriting from ActiveResource::Base
called ZenDesk, and all the models I need the ugly code in just inherit
from
that one model.
On Tue, May 13, 2008 at 9:22 AM, Frederick C. < [email protected]> wrote:
Fred
You are bloody brilliant Fred. I would’ve never thought of doing that.