ServiceIt
Facilitate the creation of Service Objects, providing the basic and enough to have a complete one and letting you free to use on your own way.
- ServiceIt
- Installation
- With Bundler
- Rails Generator
- Usage
- Example
Installation
$ gem install service_it
With Bundler
Add this line to your Gemfile
:
gem 'service_it', '~> 2.0.0'
And then execute:
$ bundle
Rails Generator
You can use Rails generator to create a Service
$ rails g service NAME
This will create:
├── app
├── services
└── name.rb
Usage
class Foo < ServiceIt::Base
def perform
# put your logic here
# you can use params that became variables
end
end
Call your service from anywhere (controllers, models, migrations...)
Foo.call(foo: foo, bar: bar)
Example
# app/services/release_post.rb
class ReleasePost < ServiceIt::Base
def perform
post.prepare_to_release
post.update(released_at: Date.current)
end
end
ReleasePost.call(post: @post)