BenjaminMedia / rails_engine_decorators

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

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

License:MIT License


Languages

Language:Ruby 83.9%Language:HTML 10.7%Language:JavaScript 3.0%Language:CSS 2.5%