Criando um plugin para substituir o QUERY_RESULT_MAX_LIMIT

Eu tentei ingenuamente criar um plugin (o que nunca fiz, exceto por seguir o tutorial de plugins há alguns anos) para substituir os limites definidos no módulo DataExplorer, no entanto, não estou conseguindo fazê-lo funcionar.

Estou no caminho certo ou esta é uma abordagem completamente errada?

Observação: Estou definindo QUERY_RESULT_DEFAULT_LIMIT para 1 para facilitar o teste se os limites personalizados estão em vigor.

Eu não recomendo um plugin aqui.

Em vez disso, envie um PR para adicionar uma GlobalSetting (que é suportada pelo ambiente).

5 curtidas

Aparentemente, isso não tem sido uma alta prioridade para ninguém nos últimos 2 anos, mas eu precisava disso hoje e resolvi editando o arquivo manualmente dentro do contêiner.

Uma solução alternativa é algo como o abaixo em 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

Mas parece que o PR seria algo como adicionar isso a plugin.rb:

GlobalSetting.add_default(:query_result_max_limit, 10000)

e então mudar o módulo acima para algo como

  QUERY_RESULT_MAX_LIMIT = GlobalSetting.query_result_max_limit || 10_000

É só isso que seria necessário?

2 curtidas

Fechar…

Eu pararia de usar a constante e usaria GlobalSetting.query_result_max_limit em todos os lugares, você já está configurando um padrão, por que configurá-lo duas vezes.

Mas precisa haver um padrão se eles não definirem a Configuração Global?

Você o define, em plugin.rb

OHHHHHH. Eu acho que “add_default” realmente adiciona um padrão. :person_shrugging:

Opa.

Então, adicione o GlobalSetting padrão e substitua todas as referências à constante antiga pelo GlobalSetting.

Entendi.

Vou ver o que posso fazer.