/usr/lib/ruby/vendor_ruby/rspec/expectations/configuration.rb is in ruby-rspec-expectations 3.4.0c3e0m1s1-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | RSpec::Support.require_rspec_expectations "syntax"
module RSpec
module Expectations
# Provides configuration options for rspec-expectations.
# If you are using rspec-core, you can access this via a
# block passed to `RSpec::Core::Configuration#expect_with`.
# Otherwise, you can access it via RSpec::Expectations.configuration.
#
# @example
# RSpec.configure do |rspec|
# rspec.expect_with :rspec do |c|
# # c is the config object
# end
# end
#
# # or
#
# RSpec::Expectations.configuration
class Configuration
def initialize
@warn_about_potential_false_positives = true
end
# Configures the supported syntax.
# @param [Array<Symbol>, Symbol] values the syntaxes to enable
# @example
# RSpec.configure do |rspec|
# rspec.expect_with :rspec do |c|
# c.syntax = :should
# # or
# c.syntax = :expect
# # or
# c.syntax = [:should, :expect]
# end
# end
def syntax=(values)
if Array(values).include?(:expect)
Expectations::Syntax.enable_expect
else
Expectations::Syntax.disable_expect
end
if Array(values).include?(:should)
Expectations::Syntax.enable_should
else
Expectations::Syntax.disable_should
end
end
# The list of configured syntaxes.
# @return [Array<Symbol>] the list of configured syntaxes.
# @example
# unless RSpec::Matchers.configuration.syntax.include?(:expect)
# raise "this RSpec extension gem requires the rspec-expectations `:expect` syntax"
# end
def syntax
syntaxes = []
syntaxes << :should if Expectations::Syntax.should_enabled?
syntaxes << :expect if Expectations::Syntax.expect_enabled?
syntaxes
end
if ::RSpec.respond_to?(:configuration)
def color?
::RSpec.configuration.color_enabled?
end
else
# Indicates whether or not diffs should be colored.
# Delegates to rspec-core's color option if rspec-core
# is loaded; otherwise you can set it here.
attr_writer :color
# Indicates whether or not diffs should be colored.
# Delegates to rspec-core's color option if rspec-core
# is loaded; otherwise you can set it here.
def color?
defined?(@color) && @color
end
end
# Adds `should` and `should_not` to the given classes
# or modules. This can be used to ensure `should` works
# properly on things like proxy objects (particular
# `Delegator`-subclassed objects on 1.8).
#
# @param [Array<Module>] modules the list of classes or modules
# to add `should` and `should_not` to.
def add_should_and_should_not_to(*modules)
modules.each do |mod|
Expectations::Syntax.enable_should(mod)
end
end
# Sets or gets the backtrace formatter. The backtrace formatter should
# implement `#format_backtrace(Array<String>)`. This is used
# to format backtraces of errors handled by the `raise_error`
# matcher.
#
# If you are using rspec-core, rspec-core's backtrace formatting
# will be used (including respecting the presence or absence of
# the `--backtrace` option).
#
# @!attribute [rw] backtrace_formatter
attr_writer :backtrace_formatter
def backtrace_formatter
@backtrace_formatter ||= if defined?(::RSpec.configuration.backtrace_formatter)
::RSpec.configuration.backtrace_formatter
else
NullBacktraceFormatter
end
end
# Sets if custom matcher descriptions and failure messages
# should include clauses from methods defined using `chain`.
# @param value [Boolean]
attr_writer :include_chain_clauses_in_custom_matcher_descriptions
# Indicates whether or not custom matcher descriptions and failure messages
# should include clauses from methods defined using `chain`. It is
# false by default for backwards compatibility.
def include_chain_clauses_in_custom_matcher_descriptions?
@include_chain_clauses_in_custom_matcher_descriptions ||= false
end
# @private
def reset_syntaxes_to_default
self.syntax = [:should, :expect]
RSpec::Expectations::Syntax.warn_about_should!
end
# @api private
# Null implementation of a backtrace formatter used by default
# when rspec-core is not loaded. Does no filtering.
NullBacktraceFormatter = Module.new do
def self.format_backtrace(backtrace)
backtrace
end
end
# Configures whether RSpec will warn about matcher use which will
# potentially cause false positives in tests.
#
# @param value [Boolean]
attr_writer :warn_about_potential_false_positives
# Indicates whether RSpec will warn about matcher use which will
# potentially cause false positives in tests, generally you want to
# avoid such scenarios so this defaults to `true`.
def warn_about_potential_false_positives?
@warn_about_potential_false_positives
end
end
# The configuration object.
# @return [RSpec::Expectations::Configuration] the configuration object
def self.configuration
@configuration ||= Configuration.new
end
# set default syntax
configuration.reset_syntaxes_to_default
end
end
|