New York Standup 10/29/2008

Interesting

Until a recent commit, Polonium defined a method on Module named deprecate, which (at least in our case) overrode the method of the same name defined in Rails. This caused some code in Rails to blow up at class loading time when trying to call Rails’ deprecate method with the wrong number of arguments.

We changed the name of Polonium’s method so it wouldn’t clash with Rails, and checked this into the master branch of Polonium on GitHub.

As of Rails 2.1, ActiveRecord support partial updates, which means that it’s smarter about what fields get updated in the SQL UPDATE statement issued by save. If you haven’t updated any fields in the object, no update will happen at all, no AR callbacks will fire, etc. If you depend on these things to happen even when not updating any fields, you can call will_change! on the model object. It was floated that a force_save method might be helpful.

It is often claimed that Symbol#to_proc is to slow to use in production code. But a clever Rubyist out there found a way to speed it up by 4x.

The test run for one of our projects here runs in 223 seconds on OSX, but in in 157s on Ubuntu. We’d like to figure out why (we’re pretty sure we’re using the MySQL Gem rather than the built-in MySQL driver that comes with Rails)

Git4Idea is now available through the IntelliJ Plugin manager. No more hand installation!

ActiveRecord::Base#to_parammust return a String if you override it. If you return an Integer you will get a weird “Can’t convert Fixnum to String” exception somewhere deep in the routing code. You can’t even tell where the exception is coming from due to the routing code’s bizarreness.