steverb.com

Things I Felt Like Posting

Recursively Extracting A Zip File in Ruby

Recently I had the need to let a user upload a zip file and then have the Ruby app extract it and store it in a DB. I turned to google, but beyond some posts recommending using rubyzip to do the zip file handling I couldn't find anything showing a good way to do this recursively without first actually extracting the zip file to disk and then using the dir object. 

After much adding and deleting code I have something that works reasonably well. More...

Error Handling in Ruby

I've recently begun learning Ruby by working my way through the Ruby Koans. I finally made it to the section on error handling, which answered a few questions for me.

Once again, Ruby has not surprised me (this is a good thing). There's just some minor syntactical differences. Specifically in place of "try, catch, finally" Ruby uses "begin, rescue, ensure".

begin
  fail "Oops"
rescue StandardError => ex
  #Do something with the error
ensure
  result = :code_that_always_runs
end 


Since I haven't made it all the way through the koans yet I'm, probably missing something that seems obvious to long time Ruby users, but so far it's pretty damned simple.