Skip to content

iago-silva/service_it

Repository files navigation

ServiceIt

Gem Version Build Status Code Climate

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.

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)