Sha256: 61cc35acedb05d1c360f74975aa7baa5c24a48271865b577ed3a2554e0386b95
Contents?: true
Size: 900 Bytes
Versions: 1
Compression:
Stored size: 900 Bytes
Contents
# frozen_string_literal: true class Solid::Process module Caller def call(arg = nil) if output? raise Error, "#{self.class}#call already called. " \ "Use #{self.class}#output to access the result or create a new instance to call again." end self.input = self.class.input.then { arg.instance_of?(_1) ? arg : _1.new(arg) } ::BCDD::Result.event_logs(name: self.class.name) do self.output = if dependencies&.invalid? Failure(:invalid_dependencies, dependencies: dependencies) elsif input.invalid? Failure(:invalid_input, input: input) else super(input.attributes.deep_symbolize_keys) end end run_callbacks(:success) if output.success? run_callbacks(:failure) if output.failure? run_callbacks(:output) output end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
solid-process-0.1.0 | lib/solid/process/caller.rb |