Sha256: 9f23580fdbfc40fe6a54d01d964e814d95b32877b96f8dec39a3b5dd7beb8414

Contents?: true

Size: 845 Bytes

Versions: 3

Compression:

Stored size: 845 Bytes

Contents

require 'open3'
require 'cucumber/messages'

module Gherkin
  module Stream
    class SubprocessMessageStream
      def initialize(gherkin_executable, paths, print_source, print_ast, print_pickles)
        @gherkin_executable, @paths, @print_source, @print_ast, @print_pickles = gherkin_executable, paths, print_source, print_ast, print_pickles
      end

      def messages
        args = [@gherkin_executable]
        args.push('--no-source') unless @print_source
        args.push('--no-ast') unless @print_ast
        args.push('--no-pickles') unless @print_pickles
        args = args.concat(@paths)
        stdin, stdout, stderr, wait_thr = Open3.popen3(*args)
        if(stdout.eof?)
          error = stderr.read
          raise error
        end
        Cucumber::Messages::ProtobufIoEnumerator.call(stdout)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gherkin-8.2.1 lib/gherkin/stream/subprocess_message_stream.rb
gherkin-8.2.0 lib/gherkin/stream/subprocess_message_stream.rb
gherkin-8.1.1 lib/gherkin/stream/subprocess_message_stream.rb