Interaction
Interactions are meant to keep controllers and models or any other business logic slim (YAY). Keep intention of class clear when using interactions, for example: To create a user, a class should be name Users::Create.
If you are using this in a Rails application you might want to use
gem 'simple_interaction-rails, github: "boza/simple_interaction-rails"'
this comes with a generator so you don't have to create individual files :)
Installation
Add this line to your application's Gemfile:
gem 'simple_interaction'
And then execute:
$ bundle
Or install it yourself as:
$ gem install simple_interaction
Usage
class Klass
include SimpleInteraction
fail_with 'ErrorClass'
requires :param1, :param2
private
def run
method
rescue => e
@error = e.message
end
def method
param1 / param2
end
end
interaction = Klass.run(param1: 2, param2: 1)
interaction.success? #=> true
interaction.error #=> nil
interaction.result #=> 2
Klass.run!(param1: 1, param2: 0) #=> raises Klass::ErrorClass
Klass.run!(param1: 1, param2: 2) #=> 2
Contributing
- Fork it ( https://github.com/[my-github-username]/interaction/fork )
- 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 a new Pull Request