Ter duas palavras-chave "finais" consecutivas com o mesmo nível de recuo parece um erro, mas para evitar isso no final de um módulo contendo, por exemplo, definições de função, é necessário recuar todo o conteúdo do módulo (o que normalmente significa todo o arquivo ) Se um arquivo começa com uma declaração de módulo, não poderíamos considerar que o "final" correspondente é fornecido implicitamente no final do arquivo?
Minha solução "basta usar um lápis" para isso é sempre escrever o end
que segue um module
assim:
module Foo
function bar()
# do stuff
end
end # module
Sim, não tenho certeza se vale um caso especial. Também fica mais confuso com módulos aninhados --- o final do arquivo deve fechar todos os módulos abertos ou apenas o mais externo?
Em algum ponto no futuro, podemos considerar um mecanismo de carregamento de módulo onde você não precise escrever module Foo ... end
no arquivo, o que pode ter outros benefícios também.
Comentários muito úteis
Minha solução "basta usar um lápis" para isso é sempre escrever o
end
que segue ummodule
assim: