------ art_1229_15181557.1146663609312 Content-Type: multipart/alternative; boundary --- art_1230_8536093.1146663609312" ------ art_1230_8536093.1146663609312 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On 4/28/06, Ruby Quiz <james / grayproductions.net> wrote: > The three rules of Ruby Quiz: > > 1. Please do not post any solutions or spoiler discussion for this quiz > until > 48 hours have passed from the time on this message. > > 2. Support Ruby Quiz by submitting ideas as often as you can: > > http://www.rubyquiz.com/ > > 3. Enjoy! > > Suggestion: A [QUIZ] in the subject of emails about the problem helps > everyone > on Ruby Talk follow the discussion. Please reply to the original quiz > message, > if you can. > > > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > by Sean Carley > > The goal of cat2rafb is to implement a command line utility that will > allow you > to submit arbitrary text to http://rafb.net/paste/ and get the URL for the > text > back. Bonus points for pushing the URL through http://rubyurl.com/ to > make it > more manageable. > > cat2rafb could work like cat, taking files as input or text until ^D after > entering the command. Here's my solution, It's not the best, the smallest, the fastest or the anything-est, but Ie learned a lot from looking at other people's solutions for ealier Quizes and this might help someone else in time. Francisco #!/usr/bin/ruby require 'net/http' require 'uri' class NoPaste attr_reader :answer def initialize( params={"lang"=>"Ruby","nick"=>"Myself", "desc"=>"test","cvt_tabs"=>"No","text"=>"fetch","submit"=>"Paste" }, uri='http://rafb.net/paste/paste.php', base_uri='http://rafb.net' ) @uri=uri @base_uri=base_uri @params=params @answer=fetch_post_rafbe end def fetch_post_rafbe response=Net::HTTP.post_form(URI.parse(@uri),@params) begin raise "Something went wrong while posting" unless response['location'] rescue puts $!,"\n" exit end @base_uri+response['location'] end def rubyurl puts "Compressing at rubyurl" uri=" http://rubyurl.com/rubyurl/remote?website_url=#{@answer}<http://rubyurl.com/rubyurl/remote?website_url=#%7B@answer%7D> " response=Net::HTTP.get_response(URI.parse(uri)) begin raise "Something went wrong while posting" unless response['location'] rescue puts $!,"\n" exit end response['location'].gsub("rubyurl/show/","") end end if __FILE__ == $0 require 'optparse' options={'lang'=>"Ruby",'nick'=>"myself",'desc'=>"", 'text'=>"", 'file'=>nil, 'r'=>nil, "cvt_tabs"=>"No","submit"=>"Paste" } opts=OptionParser.new do |opts| opts.banner= "Posts a code snippet to rafb.net and returns the address\n"\ "so you can show it to your friends on IRC\n\n"\ "Usage: posttorafb [OPTIONS]" opts.separator "" opts.separator "Options:" opts.on("-l","--lang LANGUAGE", "LANGUAGE category."," Default:Ruby") do |lang| LANGS = %w{C89 C C++ C# Java Pascal Perl PHP PL/I Python Ruby Scheme SQL VB Plain\ Text} begin raise "Invalid Argument. Language must be one of:\n#{LANGS.join(" ")}" unless LANGS.include?(lang) rescue puts $!,"\n" exit end options['lang']=lang end opts.on("-n","--nick NAME", "NAME to post under."," Default:myself") do |nick| options['nick']=nick end opts.on("-d","--desc DESCRIPTION", "DESCRIPTION of snippet."," Default:blank") do |desc| options['desc']=desc end opts.on("-f","--file FILE", "FILE containing snippet."," Default: enter from console") do |file| options['file']=file end opts.on("-r","--rubyurl", "Send to rubyurl.com for url shortening") do |r| options['r']=true end opts.on_tail("-v", "--version", "Version") do puts "0.0.1" exit end opts.on_tail("-h", "--help", "Shows this message") do puts opts exit end end begin opts.parse! rescue puts $!,"\n" puts opts exit end if options['file'] then begin options['text']=File.open(options['file'],"r").read puts "Pasting snippet from file #{options['file']}" rescue puts $!,"\n" exit end else puts "Reading snippet from console, finish by entering <CTRL-Z> in a new line" options['text']=$stdin.read end x=NoPaste.new(options) puts "Stored at: #{x.answer}" puts x.rubyurl if options['r'] end ------ art_1230_8536093.1146663609312 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline <div style="direction: ltr;"><div></div><div style="direction: ltr;"><span class="q"><span class="gmail_quote">On 4/28/06, <b class="gmail_sendername">Ruby Quiz</b> <<a href="mailto:james / grayproductions.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> james / grayproductions.net</a>> wrote:</span></span></div><div style="direction: ltr;"><span class="e" id="q_10af74e899c0c6f3_2"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> The three rules of Ruby Quiz:<br><br>1. Please do not post any solutions or spoiler discussion for this quiz until<br>48 hours have passed from the time on this message.<br><br>2. Support Ruby Quiz by submitting ideas as often as you can: <br><br><a href="http://www.rubyquiz.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.rubyquiz.com/</a><br><br>3. Enjoy!<br><br>Suggestion: A [QUIZ] in the subject of emails about the problem helps everyone <br>on Ruby Talk follow the discussion. Please reply to the original quiz message, <br>if you can.<br><br>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=<br><br>by Sean Carley<br><br>The goal of cat2rafb is to implement a command line utility that will allow you<br>toubmit arbitrary text to <a href="http://rafb.net/paste/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://rafb.net/paste/</a> and get the URL for the text<br>back. Bonus points for pushing the URL through <a href="http://rubyurl.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://rubyurl.com/</a> to make it<br>more manageable. <br><br>cat2rafb could work like cat, taking files as input or text until ^D after<br>entering the command.</blockquote></span></div><div style="direction: ltr;"><div><br>Here's my solution, It's not the best, the smallest,he fastest or the anything-est, but Iエve learned a lot from looking at other people's solutions for ealier Quizes and this might help someone elsen time. <br><br>Francisco<br><br>#!/usr/bin/ruby<br>require 'net/http'<br>require 'uri'<br><br>class NoPaste<br> attr_reader :answer<br> <br> def initialize( params={"lang"=>"Ruby","nick"=>"Myself", "desc"=>"test","cvt_tabs"=>"No","text"=>"fetch","submit"=>"Paste" }, <br> uri='<a href="http://rafb.net/paste/paste.php" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://rafb.net/paste/paste.php</a>',<br> base_uri='<a href="http://rafb.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://rafb.net</a>' <br> ) <br> @uri=uri<br> @base_uri=base_uri<br> @params=params<br> @answer=fetch_post_rafbe<br> end<br> <br> def fetch_post_rafbe<br> response=Net::HTTP.post_form(URI.parse(@uri),@params)<br> begin<br> raise "Something went wrong while posting" unless response['location'] <br> rescue<br> puts $!,"\n"<br> exit<br> end<br> @base_uri+response['location']<br> end<br> <br> def rubyurl<br> puts "Compressing at rubyurl"<br> uri="<a href="http://rubyurl.com/rubyurl/remote?website_url=#%7B@answer%7D" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://rubyurl.com/rubyurl/remote?website_url=#{@answer}</a>"<br> response=Net::HTTP.get_response(URI.parse(uri))<br> begin<br> raise "Something went wrong while posting" unless response['location'] <br> rescue<br> puts $!,"\n"<br> exit<br> end<br> response['location'].gsub("rubyurl/show/","")</div><div style="direction: ltr;"><span class="q"><br> end<br>end<br><br>if __FILE__ == $0 <br></span></div><div style="direction: ltr;"> require 'optparse'<br> options={'lang'=>"Ruby",'nick'=>"myself",'desc'=>"", <br> 'text'=>"", 'file'=>nil, 'r'=>nil, <br> "cvt_tabs"=>"No","submit"=>"Paste" }<br> opts=OptionParser.new do |opts|<br> opts.banner= "Posts a code snippet to <a href="http://rafb.net" target="_blank"nclick="return top.js.OpenExtLink(window,event,this)">rafb.net</a> and returns the address\n"\<br> "so you can show it to your friends on IRC\n\n"\ <br> "Usage: posttorafb [OPTIONS]" <br> opts.separator ""<br> opts.separator "Options:"<br> opts.on("-l","--lang LANGUAGE",<br> "LANGUAGE category."," Default:Ruby") do |lang| <br> LANGS = %w{C89 C C++ C# Java Pascal Perl PHP PL/I Python Ruby Scheme SQL VB Plain\ Text}<br> begin<br> raise "Invalid Argument. Language must be one of:\n#{LANGS.join(" ")}" unless LANGS.include?(lang)<br> rescue<br> puts $!,"\n"<br> exit<br> end<br> options['lang']=lang<br> end<br> opts.on("-n","--nick NAME",<br> "NAME to post under."," Default:myself") do |nick| <br> options['nick']=nick<br> end<br> opts.on("-d","--desc DESCRIPTION",<br> "DESCRIPTION of snippet."," Default:blank") do |desc|<br> options['desc']=desc <br> end<br> opts.on("-f","--file FILE",<br> "FILE containing snippet."," Default: enter from console") do |file|<br> options['file']=file<br> end<br> opts.on("-r","--rubyurl", "Send to <a href="http://rubyurl.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rubyurl.com</a> for url shortening") do |r|<br> options['r']=true <br> end<br> opts.on_tail("-v", "--version", "Version") do <br> puts "0.0.1"<br> exit<br> end<br> opts.on_tail("-h", "--help", "Shows this message")o<br> puts opts<br> exit<br> end<br> end<br><br> begin<br> opts.parse!<br> rescue <br> puts $!,"\n"<br> puts opts<br> exit<br> end <br><br> if options['file'] then<br> begin<br> options['text']=File.open(options['file'],"r").read<br> puts "Pasting snippet from file #{options['file']}" <br> rescue<br> puts $!,"\n"<br> exit<br> end<br> else<br> puts "Reading snippet from console, finish by entering <CTRL-Z> in a new line"<br> options['text']=$stdin.read<br> end<br><br> x=NoPaste.new(options)<br> puts "Stored at: #{x.answer}" <br> puts x.rubyurl if options['r'] <br>end<br></div><br></div><br> </div><br clear="all"> ------ art_1230_8536093.1146663609312-- ------ art_1229_15181557.1146663609312 Content-Type: application/octet-stream; name=77.rb Content-Transfer-Encoding: 7bit X-Attachment-Id: f_emqu7g67 Content-Disposition: attachment; filename="77.rb" #!/usr/bin/ruby require 'net/http' require 'uri' class NoPaste attr_reader :answer def initialize( params lang"