# File lib/bson/bson_ruby.rb, line 457
    def serialize_number_element(buf, key, val, type)
      if type == NUMBER
        buf.put(type)
        self.class.serialize_key(buf, key)
        buf.put_double(val)
      else
        if val > 2**64 / 2 - 1 or val < -2**64 / 2
          raise RangeError.new("MongoDB can only handle 8-byte ints")
        end
        if val > 2**32 / 2 - 1 or val < -2**32 / 2
          buf.put(NUMBER_LONG)
          self.class.serialize_key(buf, key)
          buf.put_long(val)
        else
          buf.put(type)
          self.class.serialize_key(buf, key)
          buf.put_int(val)
        end
      end
    end