Sha256: 267f1e6706372aeb84b9eda0ed1650832647344dc9606e9dfab37adc22dbf7f1
Contents?: true
Size: 1008 Bytes
Versions: 1
Compression:
Stored size: 1008 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 private_class_method :new # Call your service # # Example: # Foo.call(arg1: 1, arg2: 2) # # Arguments: # args: (Hash) # # Return: # perform's return def self.call(**args) new(args).perform end def initialize(args) args.each do |key, value| define_ivar(key, value) define_private_reader(key) end end # Implement this method to run your service def perform raise NotImplementedError, "Please implement 'perform' method in your #{self.class.name}" end private def define_ivar(key, value) instance_variable_set("@#{key}", value) end def define_private_reader(key) self.class.class_eval do private attr_reader key.to_sym end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
service_it-2.0.0 | lib/service_it/base.rb |