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
- .caller_locations_supported? ⇒ Boolean private
- .module_prepends_supported? ⇒ Boolean private
- .module_refinement_supported? ⇒ Boolean private
- .optional_and_splat_args_supported? ⇒ Boolean private
Instance Method Summary collapse
-
#fork_supported? ⇒ Boolean
private
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.
- #kw_args_supported? ⇒ Boolean private
- #required_kw_args_supported? ⇒ Boolean private
- #ripper_supported? ⇒ Boolean private
- #supports_exception_cause? ⇒ Boolean private
- #supports_rebinding_module_methods? ⇒ Boolean private
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
123 124 125 |
# File 'lib/rspec/support/ruby_features.rb', line 123 def supports_rebinding_module_methods? RUBY_VERSION.to_i >= 2 end |