Daniel Friesen

(Dantman, Nadir Seen Fire)

Programmer, Web Developer, Animanga Fan

Posts in April 2009

Man, forgetting to add my little error catching trick inside of one app I was writing made me realize how much I take such a simple trick for granted.

app = proc do |env|
  begin
    # Application code
  rescue Exception => e
    r = Rack::Response.new
    r.status = 500
    r.header["Content-Type"] = "text/plain"
    r.body = e.to_s << "\n" << "-" * e.to_s.length << "\n" << e.backtrace.join("\n")
    r.finish
  end
end

run app

I basically write all my rack code in a way similar to that. Normally I'll probably throw in another error catching level that catches special formated ErrorPage classes for things like NoPage to generate a 404. But this here is the big absolute fallback, if at any point inside of my code I make a mistake in syntax or anything this completely catches it, and renders the full error message and a full backtrace letting me actually see the error right away instead of looking through a horrid apache log.

[Read more...]

This one is a little bit old, but if any of you are familiar with rails' views you'll probably have seen bits of view code like:

<% form_for @user do |f| %>
  ...
<% end %>

And if you've ever jumped into erb in your own ruby you've probably made an attempt at doing something similar trying to put something into the buffer without the use of =. This is of course because ERB doesn't let you use blocks when you make use of =.

[Read more...]