Sha256: 89d2c21c15f4ce969ad1263c3664bbf892fb9e9b4d8482481553560c41bfb94d

Contents?: true

Size: 932 Bytes

Versions: 3

Compression:

Stored size: 932 Bytes

Contents

module Methadone
  module ExecutionStrategy
    # <b>Methadone Internal - treat as private</b>
    #
    # Methadone::ExecutionStrategy for the JVM that uses JVM classes to run the command and get its results.
    class JVM < Base
      def run_command(command)
        process = java.lang.Runtime.get_runtime.exec(command)
        process.get_output_stream.close
        stdout = input_stream_to_string(process.get_input_stream)
        stderr = input_stream_to_string(process.get_error_stream)
        exitstatus = process.wait_for
        [stdout.chomp,stderr.chomp,OpenStruct.new(:exitstatus => exitstatus)]
      end

      def exception_meaning_command_not_found
        NativeException
      end

    private
      def input_stream_to_string(is)
        ''.tap do |string|
          ch = is.read
          while ch != -1
            string << ch
            ch = is.read
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
methadone-1.1.0 lib/methadone/execution_strategy/jvm.rb
methadone-1.0.0 lib/methadone/execution_strategy/jvm.rb
methadone-1.0.0.rc6 lib/methadone/execution_strategy/jvm.rb