module Mongoo module Embedded class HashProxy def initialize(doc, hash, klass) @doc = doc @hash = hash @klass = klass end def build(hash) @klass.new(@doc,hash) end def raw @hash end def [](k) build raw[k] end def []=(k,o) raw[k] = o.to_hash end def each raw.each { |k,v| yield(k, build(v)) } end def size raw.size end def keys raw.keys end end # HashProxy end # Embedded end # Mongoo