Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Activate logging of all your used ActiveRecord callback hooks

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 VERSION.yml
Octocat-spinner-32 fear-of-callbacks.gemspec
Octocat-spinner-32 init.rb


Got a legacy app that has some spaghetti ActiveRecord callbacks? Install this gem, and your log will fruitfully fill with juicy logging of the callback calls.


Add this to your Rails environment file, I recommend only development.rb

config.gem 'fear-of-callbacks'


Currently your log will fill with lines like the following. Notice the preceeding equal signs, these allow you to grep for just these calls. Example:

$ tail -f log/development.log | grep "=="

== Callback => ListItem - after_initialize
== Callback => ListItem - before_validation
== Callback => ListItem - before_validation_on_create
== Callback => ListItem - validate
== Callback => ListItem - validate_on_create
== Callback => ListItem - after_validation
== Callback => ListItem - after_validation_on_create
== Callback => ListItem - before_save
== Callback => ListItem - before_create
== Callback => ListItem - after_create
== Callback => ListItem - after_save

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally. Although currently the tests aren't much to write home about.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but

    bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.


Copyright © 2009 Jamie van Dyke. See LICENSE for details.

Something went wrong with that request. Please try again.