I'm writing a Rails plugin (lets call it Foo).
I want it to provide 'bar' **class** function in controllers, so that I can do:

```
class ApplicationController
  bar ...
end

```

`bar` is defined from withing the plugin loading file vendor/plugins/foo/init.rb. Something like

```
class ActionController::Base
  def self.bar
    ...
  end
end

```

The problem is that some other plugins (in my case ResourceController) might load **before** foo and access ApplicationController.

So what happens is that ApplicationController is loaded before the plugin 'foo' and fails since there is no 'bar' defined **YET**.

So ... how do I **properly** make it work works?

I noticed that many other plugins that extend ActionController (for example inherited\_resources, resource\_controller, ) are doing exactly the same, so it seems its a matter of who loads first to decide if it fails or works.

I know that I can put code in some module and manually add the module to ApplicationController code before calling 'foo'. I'd rather not, I like the cleanliness of just 'foo'.

I also don't want to do a manual 'require'. Plugins are supposed to be auto-loaded all by themselves :)