class ServiceIt::Base

Inherit this class and implement perform method

Documentation:

https://github.com/iago-silva/service_it

Public Class Methods

call(**args) click to toggle source

Call your service

Example:

Foo.call(arg1: 1, arg2: 2)

Arguments:

args: (Hash)

Return:

perform's return
# File lib/service_it/base.rb, line 21
def self.call(**args)
  new(args).perform
end
new(args) click to toggle source
# File lib/service_it/base.rb, line 25
def initialize(args)
  args.each do |key, value|
    define_ivar(key, value)
    define_private_reader(key)
  end
end

Public Instance Methods

perform() click to toggle source

Implement this method to run your service

# File lib/service_it/base.rb, line 33
def perform
  raise NotImplementedError,
        "Please implement 'perform' method in your #{self.class.name}"
end

Private Instance Methods

define_ivar(key, value) click to toggle source
# File lib/service_it/base.rb, line 40
def define_ivar(key, value)
  instance_variable_set("@#{key}", value)
end
define_private_reader(key) click to toggle source
# File lib/service_it/base.rb, line 44
def define_private_reader(key)
  self.class.class_eval do
    private

    attr_reader key.to_sym
  end
end