Module: RSpec::Support::RubyFeatures Private

Defined in:
lib/rspec/support/ruby_features.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Provides query methods for ruby features that differ among implementations.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.caller_locations_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


79
80
81
# File 'lib/rspec/support/ruby_features.rb', line 79

def caller_locations_supported?
  respond_to?(:caller_locations, true)
end

.module_prepends_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


171
172
173
# File 'lib/rspec/support/ruby_features.rb', line 171

def module_prepends_supported?
  Module.method_defined?(:prepend) || Module.private_method_defined?(:prepend)
end

.module_refinement_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


167
168
169
# File 'lib/rspec/support/ruby_features.rb', line 167

def module_refinement_supported?
  Module.method_defined?(:refine) || Module.private_method_defined?(:refine)
end

.optional_and_splat_args_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


75
76
77
# File 'lib/rspec/support/ruby_features.rb', line 75

def optional_and_splat_args_supported?
  Method.method_defined?(:parameters)
end

Instance Method Details

#fork_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

On JRuby 1.7 ‘–1.8` mode, `Process.respond_to?(:fork)` returns true, but when you try to fork, it raises an error:

NotImplementedError: fork is not available on this platform

When we drop support for JRuby 1.7 and/or Ruby 1.8, we can drop this special case.

Returns:

  • (Boolean)


66
67
68
# File 'lib/rspec/support/ruby_features.rb', line 66

def fork_supported?
  false
end

#kw_args_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


115
116
117
# File 'lib/rspec/support/ruby_features.rb', line 115

def kw_args_supported?
  RUBY_VERSION >= '2.0.0'
end

#required_kw_args_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


119
120
121
# File 'lib/rspec/support/ruby_features.rb', line 119

def required_kw_args_supported?
  RUBY_VERSION >= '2.1.0'
end

#ripper_supported?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


105
106
107
# File 'lib/rspec/support/ruby_features.rb', line 105

def ripper_supported?
  true
end

#supports_exception_cause?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


84
85
86
# File 'lib/rspec/support/ruby_features.rb', line 84

def supports_exception_cause?
  true
end

#supports_rebinding_module_methods?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


123
124
125
# File 'lib/rspec/support/ruby_features.rb', line 123

def supports_rebinding_module_methods?
  RUBY_VERSION.to_i >= 2
end