Hi,

I have a piece of code that doesn't work in a Sinatra app I've been =
writing that doesn't work.


These two forms don't work:

get '/tweets/:service/' do

  mymethod( params[:service] )
...

get '/tweets/:service/' do

  service =3D params[:service]
  mymethod( service )
...


This works:

get '/tweets/:service/' do

  mymethod( 'servicename' )

so does this:

get '/tweets/:service/' do

  service =3D 'servicename'
  mymethod( service )


Using the params[:service] variable then mymethod fails to do what I =
expect. If I hard-code the string that it's supposed to represent, it =
works. Every way I've examined this variable it looks exactly the same =
as a hard-coded version. Dump, inspect, to_s, length, class, equality, =
they all give the answer I expect - it's a String, and it is the same =
string that's in the URL that's been passed. I know that the method =
being called works, the only thing that doesn't is this variable. =
Nothing touches it before the method is called. I've tried via telnet =
too, no difference.

To help me keep the small grain of sanity I (hope to) have remaining, =
could anyone suggest a good way to find out what makes two strings =
different?=20

I'm currently reading stuff on using the debugger, along with some stuff =
on Rack Test, but if anyone has a useful insight I can use I'd be very, =
very grateful. Would I best running a test through the debugger, for =
example?

Regards
Iain