Dovadi

None of us is as smart as all of us.

The Ampersand in Twitter4R

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:

1
2
3
4
5
6
7
8
9
10
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.

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

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