module RSpec::Expectations::Syntax
@api private Provides methods for enabling and disabling the available syntaxes provided by rspec-expectations.
Public Instance Methods
@api private Determines where we add ‘should` and `should_not`.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 11 def default_should_host @default_should_host ||= ::Object.ancestors.last end
@api private Disables the ‘expect` syntax.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 80 def disable_expect(syntax_host=::RSpec::Matchers) return unless expect_enabled?(syntax_host) syntax_host.module_exec do undef expect end end
@api private Disables the ‘should` syntax.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 57 def disable_should(syntax_host=default_should_host) return unless should_enabled?(syntax_host) syntax_host.module_exec do undef should undef should_not end end
@api private Enables the ‘expect` syntax.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 68 def enable_expect(syntax_host=::RSpec::Matchers) return if expect_enabled?(syntax_host) syntax_host.module_exec do def expect(value=::RSpec::Expectations::ExpectationTarget::UndefinedValue, &block) ::RSpec::Expectations::ExpectationTarget.for(value, block) end end end
@api private Enables the ‘should` syntax.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 38 def enable_should(syntax_host=default_should_host) @warn_about_should = false if syntax_host == default_should_host return if should_enabled?(syntax_host) syntax_host.module_exec do def should(matcher=nil, message=nil, &block) ::RSpec::Expectations::Syntax.warn_about_should_unless_configured(::Kernel.__method__) ::RSpec::Expectations::PositiveExpectationHandler.handle_matcher(self, matcher, message, &block) end def should_not(matcher=nil, message=nil, &block) ::RSpec::Expectations::Syntax.warn_about_should_unless_configured(::Kernel.__method__) ::RSpec::Expectations::NegativeExpectationHandler.handle_matcher(self, matcher, message, &block) end end end
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 72 def expect(value=::RSpec::Expectations::ExpectationTarget::UndefinedValue, &block) ::RSpec::Expectations::ExpectationTarget.for(value, block) end
@api private Indicates whether or not the ‘expect` syntax is enabled.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 96 def expect_enabled?(syntax_host=::RSpec::Matchers) syntax_host.method_defined?(:expect) end
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 43 def should(matcher=nil, message=nil, &block) ::RSpec::Expectations::Syntax.warn_about_should_unless_configured(::Kernel.__method__) ::RSpec::Expectations::PositiveExpectationHandler.handle_matcher(self, matcher, message, &block) end
@api private Indicates whether or not the ‘should` syntax is enabled.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 90 def should_enabled?(syntax_host=default_should_host) syntax_host.method_defined?(:should) end
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 48 def should_not(matcher=nil, message=nil, &block) ::RSpec::Expectations::Syntax.warn_about_should_unless_configured(::Kernel.__method__) ::RSpec::Expectations::NegativeExpectationHandler.handle_matcher(self, matcher, message, &block) end
@api private Instructs rspec-expectations to warn on first usage of ‘should` or `should_not`. Enabled by default. This is largely here to facilitate testing.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 18 def warn_about_should! @warn_about_should = true end
@api private Generates a deprecation warning for the given method if no warning has already been issued.
# File rspec-expectations/lib/rspec/expectations/syntax.rb, line 25 def warn_about_should_unless_configured(method_name) return unless @warn_about_should RSpec.deprecate( "Using `#{method_name}` from rspec-expectations' old `:should` syntax without explicitly enabling the syntax", :replacement => "the new `:expect` syntax or explicitly enable `:should` with `config.expect_with(:rspec) { |c| c.syntax = :should }`" ) @warn_about_should = false end