rails_engine_decorators
rails_engine_decorators copied to clipboard
Extend Rails Engine’s business logic (models, controllers, helpers, etc.) easily from your application or other engine.
trafficstars
= 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 https://github.com/radar/forem/pull/260
== Authors
- Kunal Chaudhari, https://github.com/kunalchaudhari
- Ryan Bigg, https://github.com/radar
- Philip Arndt, https://github.com/parndt
- Antonio Tapiador, https://github.com/atd
== 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.