Sha256: 93c1777a69efc1e5ee03e76cf844964400c8d38de71fed734bbe928b9faa98d7
Contents?: true
Size: 1005 Bytes
Versions: 29
Compression:
Stored size: 1005 Bytes
Contents
require 'rom/relation/loaded' require 'rom/relation/materializable' require 'rom/pipeline' module ROM class Relation # Left-to-right relation composition used for data-pipelining # # @api public class Composite < Pipeline::Composite include Materializable # Call the pipeline by passing results from left to right # # Optional args are passed to the left object # # @return [Loaded] # # @api public def call(*args) relation = left.call(*args) response = right.call(relation) if response.is_a?(Loaded) response elsif relation.is_a?(Loaded) relation.new(response) else Loaded.new(relation, response) end end alias_method :[], :call private # @api private # # @see Pipeline::Proxy#decorate? # # @api private def decorate?(response) super || response.is_a?(Graph) end end end end
Version data entries
29 entries across 29 versions & 2 rubygems