Actually, it's a little cooler than anything built into IRB. For example:
http://www.google.com/search?hl=en&q=121+feet+in+furlongs&btnG=Google+Search

or:
http://www.google.com/search?hl=en&lr=&safe=off&c2coff=1&q=15+pound+feet+in+newton+meters&btnG=Search

On 10/7/05, Phil Tomson <ptkwt / aracnet.com> wrote:
> In article <1128645005.327652.154530 / g49g2000cwa.googlegroups.com>,
> m4dc4p <jgbailey / gmail.com> wrote:
> >I whipped a quick script to send queries to Google and scrape results
> >if it's a valid "calculator" query. If you don't know what I mean, put
> >"5 + 5" into the Google search box. I love the feature but hate having
> >to open a web browser each time I want to use it. Thus, this script!
>
> Google is now a calculator?! Uh, errr, umm, this is getting a little bit out
> of hand, no?
>
> You could also use irb as a calculator:
> irb(main):009:0> 5+5
> => 10
>
> >
> >I'm pretty much a n00b to Ruby so any feedback, improvements, comments
> >are appreciated. Enjoy!
> >
> >--- cut here ---
> >require 'net/http'
> >require 'cgi'
> >
> >format_result = Proc.new { |s|
> >  s.gsub("<font size=-2>
> ></font>",",").gsub("&#215;","x").gsub("<sup>","^").gsub("</sup>", "")
> >}
> >
> >matchExp = Regexp.new("<td><img
> >src=/images/calc_img.gif></td><td>&nbsp;</td><td nowrap>(.*?) =
> >(.*?)</b>")
> >while  ((! (print "Enter an expression (exit to quit): "; line =
> >gets).nil?) && line.strip.upcase != "EXIT")
> >  resp =
> >Net::HTTP.get_response(URI.parse("http://www.google.com/search?q=#{CGI.escape(line.strip)}"))
> >  if resp.code == "200"
> >    begin
> >      matches = matchExp.match(resp.body)
> >      puts "==>" + format_result.call(matches[2])
> >    rescue NoMethodError
> >      puts "==> Expression not understood."
> >    rescue
> >      puts "==> Expression not understood. (#{$!.class.inspect},
> >#{$!.inspect})"
> >    end
> >  else
> >    puts "==> Response error: #{resp.code}"
> >  end
> >end
> >
>
> Well, that's, uh, cool, but there's gotta be easier ways to add numbers ;-)
>
> Phil
>
>