Sha256: b1e166c42f0dc92b14d407d1a1fdd3d122c840c5deb75ba0aac315b5d801e025
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true 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 else relation.new(response) end end alias_method :[], :call # @see Relation#map_to # # @api public def map_to(klass) self >> left.map_to(klass).mapper end private # @api private # # @see Pipeline::Proxy#decorate? # # @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/relation/composite.rb |