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