Sha256: 33751b8cb8fae7280ab836aaa69c19143ed599c337f2fb3885d2fe47b348fb25
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
#!/usr/bin/env ruby # coding: utf-8 # Copyright muflax <mail@muflax.com>, 2011 # License: GNU GPL 3 <http://www.gnu.org/copyleft/gpl.html> class Range def +(other) pair_or_num :+, other end def -(other) pair_or_num :-, other end def *(other) pair_or_num :*, other end def /(other) pair_or_num :/, other.to_f end def **(other) pair_or_num :**, other end def %(other) pair_or_num :%, other end def to_f (self.begin.to_f..self.end.to_f) end def average (self.begin + self.end) / 2.0 end def coerce(other) return self, other end def pair_or_num operator, other if other.is_a? Range calc_pairs operator, other elsif other.is_a? Numeric calc_pairs operator, (other..other) else raise NoMethodError end end def calc_pairs operator, other parts_x = [self.begin, self.end] parts_y = [other.begin, other.end] results = [] parts_x.each do |x| parts_y.each do |y| results << x.send(operator, y) end end (results.min..results.max) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
range_math-0.4.0 | lib/range_math.rb |