Module: HostOS::Interpreter

Defined in:
lib/host-os/interpreter.rb

Overview

This module allows to identify the used Ruby interpreter.

Besides here documented boolean attributes you can also check for any other boolean attribute or interpreter name:

Examples:

Query for the Opal interpreter

HostOS.interpreter.opal?

Query for TruffleRuby

HostOS.interpreter.truffleruby?

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.cardinal?true, false (readonly) Also known as: parrot?



33
34
35
# File 'lib/host-os/interpreter.rb', line 33

def cardinal?
  id == :cardinal
end

.exeString? (readonly)

Path name of current Ruby executable.



98
99
100
# File 'lib/host-os/interpreter.rb', line 98

def exe
  defined?(@exe) ? @exe : @exe = find_exe
end

.idSymbol (readonly)



# File 'lib/host-os/interpreter.rb', line 102


.jit_enabled?true, false (readonly)



65
66
67
# File 'lib/host-os/interpreter.rb', line 65

def jit_enabled?
  jit_type != :none
end

.jit_type:mjit, ... (readonly)



72
73
74
75
76
77
# File 'lib/host-os/interpreter.rb', line 72

def jit_type
  return :mjit if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
  return :yjit if defined?(RubyVM::YJIT) && RubyVM::YJIT.enabled?
  return :rjit if defined?(RubyVM::RJIT) && RubyVM::RJIT.enabled?
  jruby? ? :java : :none
end

.jruby?true, false (readonly) Also known as: java?



41
42
43
# File 'lib/host-os/interpreter.rb', line 41

def jruby?
  id == :jruby
end

.mri?true, false (readonly) Also known as: cruby?, default?



24
25
26
# File 'lib/host-os/interpreter.rb', line 24

def mri?
  id == :mri
end

.rbx?true, false (readonly) Also known as: rubinius?



49
50
51
# File 'lib/host-os/interpreter.rb', line 49

def rbx?
  id == :rbx
end

.ree?true, false (readonly) Also known as: enterprise?



57
58
59
# File 'lib/host-os/interpreter.rb', line 57

def ree?
  id == :ree
end

Class Method Details

.is?(what) ⇒ true, false



# File 'lib/host-os/interpreter.rb', line 105