Sha256: 1a01286abdb11a0c2d8179951f9a497b75135175be102e6e7eced09fdcda6bfa

Contents?: true

Size: 1.03 KB

Versions: 11

Compression:

Stored size: 1.03 KB

Contents

module Pacer
  module Pipes
    class WrappingPipe < RubyPipe
      attr_reader :graph, :element_type, :extensions, :wrapper

      def initialize(graph, element_type = nil, extensions = [])
        super()
        if graph.is_a? Array
          @graph, @wrapper = graph
        else
          @graph = graph
          @element_type = element_type
          @extensions = extensions || []
          @wrapper = Pacer::Wrappers::WrapperSelector.build graph, element_type, @extensions
        end
      end

      def instance(pipe, g)
        g ||= graph
        p = WrappingPipe.new [g, wrapper]
        p.setStarts pipe
        p
      end

      def getSideEffect
        starts.getSideEffect
      end

      def getCurrentPath
        starts.getCurrentPath
      end

      def wrapper=(w)
        if extensions.any? and w.respond_to? :add_extensions
          @wrapper = w.add_extensions extensions
        else
          @wrapper = w
        end
      end

      def processNextStart
        wrapper.new graph, starts.next
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pacer-2.0.24-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.22-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.20-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.19-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.18-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.17-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.16-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.15-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.14-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.13-java lib/pacer/pipe/wrapping_pipe.rb
pacer-2.0.12-java lib/pacer/pipe/wrapping_pipe.rb