DurableDecoratorRails
This integrates durable_decorator with Rails.
Installation
Add this line to your application's Gemfile:
gem 'durable_decorator_rails', github: 'jumph4x/durable_decorator_rails'
And then execute:
$ bundle
Or install it yourself as:
$ gem install durable_decorator_rails
Usage
This gem will generate the correct file structure, place (or append to) the correct decorator and even insert the correct seal for you. Use:
rails g decorator [FULL_METHOD_NAME]
For example, let us decorate the existing #deleted?
instance method from the gem that is namespaced under Spree
in a file that is a model called Product
. Just run:
rails g decorator Spree::Product#deleted?
The gem will create the app/models/spree/product_decorator.rb
file for you to start with, and it will have the following contents:
Spree::Product.class_eval do
durably_decorate :deleted?, mode: 'strict', sha: '9dc99742ed3ebbdd5b2cbd7c3c93d730e5244e72' do
end
end
Recent versions also pre-populate that with the previous method body, some hellpful comments and a callable alias to the previous version of the method.
Otherwise, you may access the SHA of any method in memory with:
rake durable_decorator:determine_sha[Spree::Product#deleted?]
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Cred
A project by Downshift Labs, Ruby on Rails, Performance tuning and Spree Commerce projects.