Sha256: 062779aaec4e48172f7f95ab8725d24ba58beaf1d8b482ad233ae27f4ab137f9
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module RSpec module Matchers module BuiltIn class BeBetween < BaseMatcher def initialize(min, max) @min, @max = min, max inclusive end def inclusive @less_than_operator = :<= @greater_than_operator = :>= @mode = :inclusive self end def exclusive @less_than_operator = :< @greater_than_operator = :> @mode = :exclusive self end def matches?(actual) @actual = actual comparable? && compare rescue ArgumentError false end def failure_message "#{super}#{not_comparable_clause}" end def description "be between #{@min.inspect} and #{@max.inspect} (#{@mode})" end private def comparable? @actual.respond_to?(@less_than_operator) && @actual.respond_to?(@greater_than_operator) end def not_comparable_clause ", but it does not respond to `#{@less_than_operator}` and `#{@greater_than_operator}`" unless comparable? end def compare @actual.__send__(@greater_than_operator, @min) && @actual.__send__(@less_than_operator, @max) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rspec-expectations-3.0.0.beta2 | lib/rspec/matchers/built_in/be_between.rb |