module ActiveSupport #:nodoc: module CoreExtensions #:nodoc: module Range #:nodoc: # Check if a Range includes another Range module IncludeRange def self.included(klass) #:nodoc: klass.send(:alias_method_chain, :include?, :range) end def include_with_range?(value) if value.is_a?(::Range) operator = exclude_end? ? :< : :<= end_value = value.exclude_end? ? last.succ : last include?(value.first) && (value.last <=> end_value).send(operator, 0) else include_without_range?(value) end end end end end end