Construindo uma estrutura de extensão para um aplicativo Rails

Estou iniciando uma pesquisa sobre o que eu precisaria para criar um sistema de plugins no nível do usuário (como plugins do Wordpress) para um aplicativo Rails, por isso gostaria de receber algumas dicas / conselhos gerais. Por plug-in no nível do usuário, refiro-me a um pacote que um usuário pode extrair em uma pasta e fazer com que ele apareça em uma interface administrativa, permitindo que eles adicionem alguma configuração extra e a ativem.

Qual é a melhor maneira de fazer isso? Existe algum outro projeto de código aberto que já faça isso? O que o próprio Rails já oferece para plugins em nível de programador que podem ser aproveitados? Algum plug-in do Rails que poderia me ajudar com isso?

Um plug-in teria que ser capaz de:

executar suas próprias migrações (comesta? não está documentado)ter acesso aos meus modelos (plugins já fazem)tem pontos de entrada para adicionar conteúdo às visualizações (pode ser feito comcontent_for e yield)substituir vistas inteiras ou parciais (quão?)fornecer suas próprias visualizações de administrador e voltadas para o usuário (quão?)crie suas próprias rotas (ou talvez apenas anuncie sua presença e deixemim crie as rotas para evitar plugins que pisem nos dedos uns dos outros)

Falta mais alguma coisa?

Além disso, existe uma maneira de limitar a quais tabelas / ações o plug-in tem acesso em relação a migrações e modelos e também limitar o acesso a rotas (talvez permitindo que elas incluam, mas não remova rotas)?

P.S .: Vou tentar manter isso atualizado, compilando as coisas que eu descobrir e respostas relevantes para ter uma espécie de guia para os outros.

questionAnswers(2)

yourAnswerToTheQuestion