Sha256: a7e1b48bc530b93d1a6553b5c229be4dc867330e9bbefbe7d7248a0adae130e4
Contents?: true
Size: 956 Bytes
Versions: 1
Compression:
Stored size: 956 Bytes
Contents
# frozen_string_literal: true module ServiceIt # Inherit this class and implement perform method # # Documentation: # https://github.com/iago-silva/service_it class Base class << self # Call your service # # Example: # Foo.call(arg1: 1, arg2: 2) # # Arguments: # args: (Hash) # # Return: # perform's return def call(**args) new_instance(args).perform end private def new_instance(args) instance = new args.each do |key, value| instance.instance_variable_set("@#{key}", value) class_eval do private attr_accessor key.to_sym end end instance end end # Implement this method to run your service def perform raise NotImplementedError, "Please implement 'perform' method in your #{self.class.name}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
service_it-1.1.0 | lib/service_it/base.rb |