diff --git a/ChangeLog b/ChangeLog index 40870e3..0391535 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,12 +2,13 @@ = Revision history for nuggets -== 1.0.2 [unreleased] +== 1.1.0 [unreleased] * Nuggets::LogParser::Rails no longer evals the params hash; set the environment variable +NUGGETS_LOG_PARSER_RAILS_EVAL_PARAMS+ to restore this behaviour. * Added Object#rescue_if and Object#rescue_unless. +* Added JRuby variant of Process.ruby. == 1.0.1 [2014-08-27] diff --git a/lib/nuggets/ruby.rb b/lib/nuggets/ruby.rb index 4172b4b..b2a2ae6 100644 --- a/lib/nuggets/ruby.rb +++ b/lib/nuggets/ruby.rb @@ -216,20 +216,27 @@ def shebang_command(filename) def File.ruby; ::Nuggets::Ruby.ruby_command; end -begin - require 'open4' - +if RUBY_PLATFORM == 'java' def Process.ruby(*args, &block) argv = ::Nuggets::Ruby.ruby_options_to_argv(args) - ::Open4.popen4(*argv, &block) + ::IO.popen4(*argv, &block); $? end +else + begin + require 'open4' + + def Process.ruby(*args, &block) + argv = ::Nuggets::Ruby.ruby_options_to_argv(args) + ::Open4.popen4(*argv, &block) + end - require 'nuggets/io/interact' + require 'nuggets/io/interact' - def Process.interact_ruby(input, *args) - ruby(*args) { |_, i, o, e| - ::IO.interact({ input => i }, { o => $stdout, e => $stderr }) - } + def Process.interact_ruby(input, *args) + ruby(*args) { |_, i, o, e| + ::IO.interact({ input => i }, { o => $stdout, e => $stderr }) + } + end + rescue ::LoadError end -rescue ::LoadError end