Sha256: 5dfe77fdba73cbef2adaaada7491e95c0ea0a6b3571353c2e3a4c704c9197990
Contents?: true
Size: 882 Bytes
Versions: 16
Compression:
Stored size: 882 Bytes
Contents
# frozen_string_literal: true module Lcms module Engine # Base interactor to be used on the controllers # Usage: # # class MyController # def my_action # interactor = MyInteractor.call(self) # if interactor.success? # # do something # else # # use interactor.error # end class BaseInteractor def self.call(context) interactor = new(context) interactor.run interactor end attr_reader :error def initialize(context) @context = context end def success? @error.nil? end def run raise NotImplementedError end protected attr_reader :context def fail!(error) @error = error end def params context.params end end end end
Version data entries
16 entries across 16 versions & 1 rubygems