Если вы используете Ruby 1.9, Time.parse
прекрасно понимает ваш формат:
ruby-1.9.2-p180 :003 > t = Time.parse("Mon, 10 Oct 2011 20:13:10 +0000")
=> 2011-10-10 23:13:10 +0300
ruby-1.9.2-p180 :004 > t.month
=> 10
ruby-1.9.2-p180 :005 > t.strftime("%d-%m-%Y")
=> "10-10-2011"
В 1.8, DateTime
имеет аналогичный метод:
irb(main):004:0> require 'date'
=> true
irb(main):006:0> t = DateTime.parse("Mon, 10 Oct 2011 20:13:10 +0000")
=> #<DateTime: 2011-10-10T20:13:10+00:00 (21218503759/8640,0/1,2299161)>
irb(main):007:0> t.month
=> 10
Если вы хотите самостоятельно реализовать distance_of_time_in_words, лучше всего начать с проверки его источника (щелкните ссылку на источник просмотра на этой странице).