Extend Rails Engine’s business logic (models, controllers, helpers, etc.) easily from your application or other engine.
Ruby JavaScript
Latest commit 0a73282 Jul 29, 2013 @atd Merge pull request #4 from bf4/add-license-to-gemspec
[#3] Add license to gemspec, is MIT
Permalink
Failed to load latest commit information.
lib
test test/dummy/db/.gitkeep Sep 28, 2012
.gitignore Gem scaffold Sep 28, 2012
.travis.yml Travis support Sep 28, 2012
Gemfile Gem scaffold Sep 28, 2012
MIT-LICENSE Gem scaffold Sep 28, 2012
README.rdoc Add to authors Sep 28, 2012
Rakefile
rails_engine_decorators.gemspec [#3] Add license to gemspec, is MIT Jul 26, 2013

README.rdoc

Rails Engine Decorators

Extend Rails Engine's business logic (models, controllers, helpers, etc.) easily from your application or other engine.

This solution was first implemented in the Forem engine, see github.com/radar/forem/pull/260

Authors

Usage

(From Forem's patch):

Standard practice for including such changes in your application or extension is to create a file within the relevant app/models or app/controllers directory with the original class name with _decorator appended.

### Adding a custom method to the Post model:

# app/decorators/models/forem/post_decorator.rb

Forem::Post.class_eval do
  def some_method
    ...
  end
end

### Adding a custom method to the PostsController:

# app/decorators/controllers/forem/posts_controller_decorator.rb

Forem::PostsController.class_eval do
  def some_action
    ...
  end
end

The exact same format can be used to redefine an existing method.