From: Peter Date: 2003-11-26T08:45:54+09:00 Subject: Re: Range does not take an Range object. > class Range > > alias_method :old_include?, :include? > > def include?(obj) > if obj.is_a? Range > #lb1 = first.succ lb1 = first > ub1 = exclude_end? ? last : last.succ > #lb2 = obj.first.succ lb2 = obj.first > ub2 = obj.exclude_end? ? obj.last : obj.last.succ > (((lb2 <=> lb1) >= 0) && ((ub1 <=> ub2) >= 0)) > else > old_include? obj > end > end > > def intersect?(obj) > lb1 = first.succ > ub1 = exclude_end? ? last : last.succ > lb2 = obj.first.succ > ub2 = obj.exclude_end? ? obj.last : obj.last.succ > if (lb2 <=> ub2) > 0 then > false > elsif (lb1 <=> ub1) > 0 > false > else > (((ub1 <=> lb2) >= 0) && ((ub2 <=> lb1) >= 0)) > end > end > end