The ampersand in Twitter4R

Posted by Frank Oxener
on Monday, March 03, 2008

For Bemba.com we use the Twitter4R gem, which works like a charm.

sharing web pages with friends in one click on several social networks at once!

Except we had some problems when we used the & character in our messages. It turned out that URI.encode was used for encoding and the text message was chopped off at the & character.

The solution was to use CGI::escape for encoding in ../twitter/lib/twitter/ext/ stdlib.rb:


class Hash
  # Returns string formatted for HTTP URL encoded name-value pairs.
   def to_http_str
    result = ''
    return result if self.empty?
    self.each do |key, val|
      result << "#{key}=#{CGI::escape(val.to_s)}&" 
    end
    result.chop 
end

Now it is just a matter of submitting a patch for the gem, but although the specifications are all nicely written with RSpec, we’re not able to run the specs.


no such file to load -- ./../spec_helper (LoadError)

What are we doing wrong here….where is the spec helper?

Comments