# File lib/moped/protocol/message.rb, line 154
        def document(name, options = {})
          attr_accessor name

          if options[:optional]
            class_eval "def serialize_\#{name}(buffer)\nbuffer << \#{name}.to_bson if \#{name}\nend\n", __FILE__, __LINE__ + 1
          elsif options[:type] == :array
            class_eval "def serialize_\#{name}(buffer)\n\#{name}.each do |document|\nbuffer << document.to_bson\nend\nend\n", __FILE__, __LINE__ + 1
          else
            class_eval "def serialize_\#{name}(buffer)\nbuffer << \#{name}.to_bson\nend\n", __FILE__, __LINE__ + 1
          end

          fields << name
        end