Sha256: 61563a066d57adda52fb14fbd9154a3daa46a859c062dee8f978a3963fd86816
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true require "rom/pipeline" module ROM module Commands # Composite command that consists of left and right commands # # @api public class Composite < Pipeline::Composite # Calls the composite command # # Right command is called with a result from the left one # # @return [Object] # # @api public def call(*args) response = left.call(*args) if response.nil? || (many? && response.empty?) return one? ? nil : EMPTY_ARRAY end if one? && !graph? if right.is_a?(Command) || right.is_a?(Commands::Composite) right.call([response].first) else right.call([response]).first end elsif one? && graph? right.call(response).first else right.call(response) end end alias_method :[], :call # @api private def graph? left.is_a?(Graph) end # @api private def result left.result end # @api private def decorate?(response) super || response.is_a?(Graph) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rom-6.0.0.alpha1 | lib/rom/commands/composite.rb |