nfse
nfse copied to clipboard
Atualizar abordagem de uso do Virtus
Oi!
Estou implementando a NFS-e de Porto Alegre - que é muito similar a NFS-e do Rio - e para isso tive que atualizar o mustache. Consequência do update é atualizar o Virtus (e a versão do ruby).
Bom, efeito colateral encontrado até agora foi a perda do acesso direto aos métodos de instância das classes com Virtus. O que significa que, por exemplo:
{{{ render_rps }}}
Para de funcionar. O pior: nem quebra, apenas volta em branco como um atributo não existente. Ainda não li muito sobre o virtus, mas pelo que entendi, a abordagem para tornar esses métodos públicos, seria criar um atributo na classe e apontar o default dela para o método que queremos:
attribute :render_rps, String, default: :default_render_rps
def default_render_rps
rps.map(&:render).join('')
end
Você deve ter estudado um pouco mais e a alteração afeta seu código. Gostaria de saber se esse é o caminho mesmo e se você me dá carta branca para alterar onde for necessário?
PS: Dá uma conferida em yaydev/nfse, estou atualizando a documentação também, principalmente escrevendo uma introdução mais conceitual pra quem quiser contribuir. Levei muito tempo lendo documentos mal organizados em diferentes fontes.