class RSpec::Matchers::BuiltIn::BeBetween

@api private Provides the implementation for ‘be_between`. Not intended to be instantiated directly.

Public Class Methods

# File rspec-expectations/lib/rspec/matchers/built_in/be_between.rb, line 8
def initialize(min, max)
  @min, @max = min, max
  inclusive
end

Public Instance Methods

@api private @return [String]

# File rspec-expectations/lib/rspec/matchers/built_in/be_between.rb, line 57
def description
  "be between #{description_of @min} and #{description_of @max} (#{@mode})"
end

@api public Makes the between comparison exclusive.

@example

expect(3).to be_between(2, 4).exclusive
# File rspec-expectations/lib/rspec/matchers/built_in/be_between.rb, line 33
def exclusive
  @less_than_operator = :<
  @greater_than_operator = :>
  @mode = :exclusive
  self
end

@api private @return [String]

# File rspec-expectations/lib/rspec/matchers/built_in/be_between.rb, line 51
def failure_message
  "#{super}#{not_comparable_clause}"
end

@api public Makes the between comparison inclusive.

@example

expect(3).to be_between(2, 3).inclusive

@note The matcher is inclusive by default; this simply provides

a way to be more explicit about it.
# File rspec-expectations/lib/rspec/matchers/built_in/be_between.rb, line 21
def inclusive
  @less_than_operator = :<=
  @greater_than_operator = :>=
  @mode = :inclusive
  self
end

@api private @return [Boolean]

# File rspec-expectations/lib/rspec/matchers/built_in/be_between.rb, line 42
def matches?(actual)
  @actual = actual
  comparable? && compare
rescue ArgumentError
  false
end