On 5/5/06, Dave Burt <dave / burt.id.au> wrote: > I suppose Sean Carley's solution came in too late for the summary, but I > think it's definitely worth looking at for its terseness. Here's a bonus > summary. > > > #!/usr/bin/ruby > > require 'uri' > > require 'net/http' > > So Sean's using a couple of libraries like the other solutions. > Actually, just one, really: net/http. You don't need to explicitly > require 'uri'; net/http requires it. No command-line switches here. > > Watch as a complete solution unfolds in just three lines. You can > probably read it just as well without my commentary. > > > result = Net::HTTP.post_form(URI.parse('http://rafb.net/paste/paste.php'), > > {:text => ARGF.readlines, > > :nick => 'paste user', > > :lang => 'Ruby'}) > > Line one uses Net::HTTP.post_form to send a form-style POST request and > get back the result. post_form takes two parameters, the target URI, and > a hash of form data. > > The value of the form variable "text" comes from ARGF (like Stefano > Taschini's solution and others) which will get input from filenames > given as command-line arguments or from standard input. Yes, Sean's RubyGolf implementation is very good, and plus. it showed the essence of problem space in about 1 line of code. A lot of the other solutions (even mine!) went to some expense setting up variable options, error handing, well factored code, etc. But the goal of the quiz was to paste the input to rafb.net and get the URL back. Which his does elegantly. Not that the other solutions were not good. They showed how to write idiomatic ruby to solve this general class of problems, and I learned a lot from reading them, which is the goal of the quiz in general. Sean freely admits his approach was "slash and burn farming," and it wouldn't work if you wanted to paste "Plain Text" or some other language. I say, however, that the nopaste website and using it with IRC indicates a simple solution. If you were pairing or collaborating over the net and wanted something like this and you didn't have it, you could code it in Ruby in a very few minutes. BTW, we (Sean, Craig Bucheck and I,) worked on this as this week's StL.rb (St. Louis Ruby group) weekly hacking night project. Ruby group members across the land are meeting on the same weeknight as the regular meeting to participate in Ruby code pair-programming or working on common problems for general edification. The RubyQuiz which comes out about once a week makes for a good topic. Try it out in your own HackNight. > > Cheers, > Dave Till later, Ed