lib/spruz/bijection.rb
module Spruz class Bijection < Hash def initialize(inverted = Bijection.new(self)) @inverted = inverted end def fill if empty? yield self freeze end self end def freeze r = super unless @inverted.frozen? @inverted.freeze end r end def []=(key, value) return if key?(key) super @inverted[value] = key end attr_reader :inverted end end