Module: ChildProcess

Defined in:
lib/childprocess.rb,
lib/childprocess/unix.rb,
lib/childprocess/jruby.rb,
lib/childprocess/errors.rb,
lib/childprocess/unix/io.rb,
lib/childprocess/windows.rb,
lib/childprocess/ironruby.rb,
lib/childprocess/jruby/io.rb,
lib/childprocess/windows/io.rb,
lib/childprocess/abstract_io.rb,
lib/childprocess/windows/api.rb,
lib/childprocess/unix/process.rb,
lib/childprocess/jruby/process.rb,
lib/childprocess/windows/handle.rb,
lib/childprocess/windows/process.rb,
lib/childprocess/abstract_process.rb,
lib/childprocess/ironruby/process.rb,
lib/childprocess/jruby/redirector.rb,
lib/childprocess/windows/functions.rb

Defined Under Namespace

Modules: IronRuby, JRuby, Unix, Windows Classes: AbstractIO, AbstractProcess, Error, SubclassResponsibility, TimeoutError

Class Method Summary collapse

Class Method Details

.jruby?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/childprocess.rb', line 43

def jruby?
  platform == :jruby
end

.new(*args) ⇒ Object Also known as: build



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/childprocess.rb', line 13

def new(*args)
  case platform
  when :jruby
    JRuby::Process.new(args)
  when :ironruby
    IronRuby::Process.new(args)
  when :windows
    Windows::Process.new(args)
  else
    Unix::Process.new(args)
  end
end

.osObject



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/childprocess.rb', line 51

def os
  @os ||= (
    require "rbconfig"
    host_os = RbConfig::CONFIG['host_os']

    case host_os
    when /mswin|msys|mingw32/
      :windows
    when /darwin|mac os/
      :macosx
    when /linux/
      :linux
    when /solaris|bsd/
      :unix
    else
      raise Error, "unknown os: #{host_os.inspect}"
    end
  )
end

.platformObject



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/childprocess.rb', line 27

def platform
  if RUBY_PLATFORM == "java"
    :jruby
  elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == "ironruby"
    :ironruby
  elsif RUBY_PLATFORM =~ /mswin|msys|mingw32/
    :windows
  else
    os
  end
end

.unix?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/childprocess.rb', line 39

def unix?
  !jruby? && [:macosx, :linux, :unix].include?(os)
end

.windows?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/childprocess.rb', line 47

def windows?
  !jruby? && os == :windows
end