Something which may be of use to all bloggers and social app builders is that it is pretty easy to pull someones twitter profile photo in RoR heres the code :
# call the twitter api url = 'http://twitter.com/users/show/show.xml?email='+CGI.escape(firstname.lastname@example.org) # get the XML data as a string xml_data = Net::HTTP.get_response(URI.parse(url)).body # extract profile image tag information doc = REXML::Document.new(xml_data) profile_image = nil doc.elements.each('user/profile_image_url') do |ele| profile_image = ele.text end # if we have an image and its not a default avatar then continue if profile_image and ! profile_image.include? "static.twitter.com" begin profile_image=profile_image.gsub("_normal","_bigger") filename="/tmp/"+rand(100000).to_s+File.extname(profile_image).downcase file=open(filename,"w") file.write(open(profile_image).read) file.close # do as you will with the avatar rescue #fail end else #fail end
Creating a controller filter that accepts a parameter is less than obvious as I found today while trying to add more than basic authentication to a controller.
Turns out that you need to do it like this :
before_filter :only => [:create, :update, :destroy] do |controller| controller.filter_function(parameter) end
rather than allowing a parameters array to pass into the before_filter function which would be nice.