Please read for an updated status on RailsCasts:
Learn more or hide this
GitHub User: matt-hwy1
Aditya, as I understand it, when a web request comes in to a running web server, it will be handed off by Passenger (or whatever you use) to a running ruby process that has already handled a prior web request. Since the prior request most likely had a workflow that ran the before filter, and since the before filter sets the time zone for the entire process, that time zone is now being used for any code running in that process. If that is not undone when the request is done being responded to, then the next incoming request to that process will see all times be displayed in that prior zone. This is of course avoided if the before filter sets the time zone for every single incoming request, but it's safer (although probably slower) to use the around filter, in case you have any current or future case where the before filter might not be run for some reason.
+1. Yes this breaks deployment from Mac to a non-Mac platform. I just leave off the OS-specific line, since I'm deploying to production, and the gem is only used for dev/test on my Mac.
I have the same problem on OSX 10.5.8. Maybe it breaks on the older OSX? Guess I'll try to upgrade at some point... It breaks for me with or without growl/growlnotify.