class RSpec::Matchers::BuiltIn::BeWithin
@api private Provides the implementation for ‘be_within`. Not intended to be instantiated directly.
Public Class Methods
# File rspec-expectations/lib/rspec/matchers/built_in/be_within.rb, line 8 def initialize(delta) @delta = delta end
Public Instance Methods
@api private @return [String]
# File rspec-expectations/lib/rspec/matchers/built_in/be_within.rb, line 52 def description "be within #{@delta}#{@unit} of #{expected_formatted}" end
@api private @return [String]
# File rspec-expectations/lib/rspec/matchers/built_in/be_within.rb, line 40 def failure_message "expected #{actual_formatted} to #{description}#{not_numeric_clause}" end
@api private @return [String]
# File rspec-expectations/lib/rspec/matchers/built_in/be_within.rb, line 46 def failure_message_when_negated "expected #{actual_formatted} not to #{description}" end
@private
# File rspec-expectations/lib/rspec/matchers/built_in/be_within.rb, line 32 def matches?(actual) @actual = actual raise needs_expected unless defined? @expected numeric? && (@actual - @expected).abs <= @tolerance end
@api public Sets the expected value.
# File rspec-expectations/lib/rspec/matchers/built_in/be_within.rb, line 14 def of(expected) @expected = expected @tolerance = @delta @unit = '' self end
@api public Sets the expected value, and makes the matcher do a percent comparison.
# File rspec-expectations/lib/rspec/matchers/built_in/be_within.rb, line 24 def percent_of(expected) @expected = expected @tolerance = @expected.abs * @delta / 100.0 @unit = '%' self end