Antes do Rails 4, era possível herdar da classe AppBuilder do rails para criar um AppBuilder personalizado (por exemplo, é assim que os suspensórios . Isso daria mais flexibilidade na personalização da geração de novos aplicativos Rails do que apenas usar um template de aplicativo.
No Rails 4, o AppBuilder foi removido e o Application Template permanece como a única opção. Você ainda pode personalizá-lo de maneira semelhante ao AppBuilder.
O modelo de aplicativo é executado no contexto de Rails::Generators::AppGenerator
, portanto, embora possa não parecer tão bonito, você pode substituir mehtods da classe AppGenerator.
Por exemplo, se desejar que o modelo de aplicativo procure arquivos no mesmo diretório, você pode substituir o método source_paths de dentro do modelo de aplicativo:
def source_paths
[File.expand_path(File.dirname(__FILE__))]
end
Agora, quando você usa coisas como copy_file
o modelo, o caminho será relativo ao diretório atual.