Creando un plugin para anular QUERY_RESULT_MAX_LIMIT

Intenté ingenuamente crear un plugin (algo que nunca había hecho, aparte de repasar el tutorial de plugins hace algunos años) para anular los límites establecidos en el módulo DataExplorer, sin embargo, no estoy logrando que funcione.

¿Voy por buen camino o es un enfoque completamente erróneo?

Nota: Estoy estableciendo QUERY_RESULT_DEFAULT_LIMIT en 1 para que sea más fácil probar si los límites personalizados están teniendo efecto.

No recomiendo un plugin aquí.

En su lugar, envía una PR para añadir un GlobalSetting (que está respaldado por el entorno).

5 Me gusta

Aparentemente, esto no ha sido una alta prioridad para nadie en los últimos 2 años, pero lo necesitaba hoy y lo resolví editando el archivo manualmente dentro del contenedor.

Una solución alternativa es algo como lo siguiente en app.yml:

  after_bundle_exec:
   - replace:
        filename: "/var/www/discourse/plugins/discourse-data-explorer/plugin.rb"
        from: /QUERY_RESULT_MAX_LIMIT = 10_000/
        to: QUERY_RESULT_MAX_LIMIT = 100_000

Pero parece que la PR sería algo como agregar esto a plugin.rb:

GlobalSetting.add_default(:query_result_max_limit, 10000)

y luego cambiar el módulo anterior a algo como

  QUERY_RESULT_MAX_LIMIT = GlobalSetting.query_result_max_limit || 10_000

¿Sería todo lo que se necesitaría?

2 Me gusta

Cerrar…

Dejaría de usar la constante y, en su lugar, usaría GlobalSetting.query_result_max_limit en todas partes; ya está configurando un valor predeterminado, ¿por qué configurarlo dos veces?

Pero tiene que haber un valor predeterminado si no establecen el GlobalSetting?

Lo configuras en plugin.rb

OHHHHHH. Supongo que “add_default” sí añade un valor predeterminado. :person_shrugging:

Ups.

Así que añade el GlobalSetting predeterminado y reemplaza todas las referencias a la constante antigua con el GlobalSetting.

Entendido.

Veré qué puedo hacer.