An open API service indexing awesome lists of open source software.

https://github.com/atd/rails_engine_decorators

Extend Rails Engine’s business logic (models, controllers, helpers, etc.) easily from your application or other engine.
https://github.com/atd/rails_engine_decorators

Last synced: 10 months ago
JSON representation

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

Awesome Lists containing this project

README

          

= 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.