Posts Tagged callbacks

Hooks goes without ActiveSupport and still has inheritable attributes

Sunday, October 3rd, 2010

The ongoing discussions about ActiveSupport in Hooks lead me to believe that ActiveSupport is not as popular as i thought it is.

Don’t get me wrong, I didn’t get misleaded by comments like

ActiveSupport sucks and monkey craps on too many classes

although some of this is true :-D It has wonderful helper methods and there’s a lot of work done for you already, but ActiveSupport is simply too complex.

After I found out that Class.class_inheritable_array fails when doing

require "activesupport/core_ext/class/inheritable_attributes"

with some undefined method exception (at least with 2.3.9), I finally decided to do it on my own.

Hooks::InheritableAttribute

The current implementation is simple.

You use it like

class Cat
  extend Hooks::InheritableAttribute
  inheritable_attr :lifes
  self.lifes = []

and in subclasses

class Garfield < Cat
  self.lifes << "second"

so it is like ActiveSupport’s class_inheritable_array. Less code, of course.

Where to go?

Not sure if methods like that should be packaged in separate gems? Or in a more generic gem aggregating features?

I mean, it would end up in some big PassiveLaziness gem and we’d have two mainlines of handy ruby feature libraries.

So where to put such code? How can we make it modular and easily useable without automatically monkey patching every second class, as ActiveSupport does?

Any thoughts welcome!