> ## Modular Arithmetic (#179)
Here is a (maybe too) simple proxy solution. Modular division isn't
implemented. It passes the tests -- little more.
This solution is for ruby 1.9 only. AFAIK facets also has a
BasicObject class that could (or maybe not) be used as a replacement
for ruby19's BasicObject.
Regards,
Thomas.
#!/usr/bin/env ruby19
class Modulo < BasicObject
def initialize(num, modulo=26)
@modulo = modulo
@num = num % @modulo
end
def method_missing(meth, *args)
rv = @num.send(meth, *args)
case rv
when ::Numeric
::Modulo.new(rv % @modulo)
else
rv
end
end
def <=>(other)
@num <=> other.real
end
def ==(other)
@num == other.real
end
alias :equal? :==
def real
@num
end
end