Sha256: 1be44b59e6b7c2692337b34a7f2e8657286ad5372ceaa48ee3cc59d7ce8d2d9c
Contents?: true
Size: 789 Bytes
Versions: 1
Compression:
Stored size: 789 Bytes
Contents
# frozen_string_literal: true module Lite module Service class Base class << self def call(*args) klass = new(*args) klass.call klass end def run(*args) klass = new(*args) klass.call end end attr_reader :result def initialize(*args) @args = args end def call raise Lite::Service::NotImplementedError unless defined?(command) return @result if called? @called = true @result = command end def called? @called ||= false end def recall! @called = false %i[cache errors].each { |mixin| send(mixin).clear if respond_to?(mixin) } call end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lite-service-1.0.3 | lib/lite/service/base.rb |