Sha256: 1622a59ffe7233cd92348765080f4ea47ff3200107b2ab14b669916821e9120a

Contents?: true

Size: 1.21 KB

Versions: 11

Compression:

Stored size: 1.21 KB

Contents

module Pacer
  module Pipes
    class PathWrappingPipe < RubyPipe
      attr_reader :graph
      attr_accessor :vertex_wrapper, :edge_wrapper, :other_wrapper

      def initialize(graph, vertex_extensions = [], edge_extensions = [])
        super()
        if graph.is_a? Array
          @graph, @vertex_wrapper, @edge_wrapper = graph
        else
          @graph = graph
          @vertex_wrapper = Pacer::Wrappers::WrapperSelector.build graph, :vertex, vertex_extensions || Set[]
          @edge_wrapper = Pacer::Wrappers::WrapperSelector.build graph, :edge, edge_extensions || Set[]
        end
      end

      def instance(pipe, g)
        g ||= graph
        p = PathWrappingPipe.new [g, vertex_wrapper, edge_wrapper]
        p.setStarts pipe
        p
      end

      def getCurrentPath
        starts.getCurrentPath
      end

      def processNextStart
        path = starts.next
        path.collect do |item|
          if item.is_a? Pacer::Vertex
            vertex_wrapper.new graph, item
          elsif item.is_a? Pacer::Edge
            edge_wrapper.new graph, item
          elsif other_wrapper
            other_wrapper.new graph, item
          else
            item
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

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