> ## 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