ActiveInteractor
An implementation of the command pattern for Ruby with ActiveModel::Validations inspired by the interactor gem. Rich support for attributes, callbacks, and validations, and thread safe performance methods.
Reduce controller bloat with procedural service objects. Checkout this Medium article for a crash course on how to use ActiveInteractors. Read the wiki for detailed usage information.
Features
- Context validation
- Callbacks
- Thread safe performance calls
- Organize multiple interactors conditionally or in parallel
Getting Started
Add this line to your application's Gemfile:
gem 'activeinteractor', require: 'active_interactor'
And then execute:
bundle
Or install it yourself as:
gem install activeinteractor
Usage
Be sure to read the wiki for detailed information on how to use ActiveInteractor.
For technical documentation please see the gem's ruby docs.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests.
You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
.
Contributing
Read our guidelines for Contributing.
Acknowledgements
- Special thanks to @collectiveidea for their amazing foundational work on the interactor gem.
- Special thanks to the @rails team for their work on ActiveModel and ActiveSupport gems.
License
The gem is available as open source under the terms of the MIT License.