CLAISS CLI - Ferramenta de Refatoração Inteligente
English | Português
English
CLAISS is a powerful Ruby-based CLI application designed to help developers refactor codebases with ease. It provides tools for batch renaming, text replacement, and permission management across your projects.
✨ Features
- 🔄 Refactor file contents and names in batch
- 🔍 Preview changes before applying them
- 📊 Generate detailed diffs of changes
- 🔒 Fix Ruby file permissions automatically
- 🚀 Fast parallel processing
- 🛡️ Safe refactoring with backup options
🚀 Installation
Install the CLAISS gem:
gem install claiss
Or add it to your Gemfile:
gem 'claiss', '~> 1.0'
🛠️ Commands
Version
Check the CLAISS version:
$ claiss version
# Or use shortcuts:
$ claiss v
$ claiss -v
$ claiss --version
Refactor
Refactor file contents and names using a JSON dictionary:
$ claiss refactor <project_path> <json_file> [options]
Options:
-
--destination, -d
: Specify output directory (default: in-place) -
--dry-run
: Preview changes without modifying files -
--debug
: Show detailed debug messages during processing
Example:
$ claiss refactor my_project refactor_rules.json --dry-run
JSON Dictionary Format
Create a JSON file with key-value pairs for replacements:
{
"old_term": "new_term",
"OldClass": "NewClass",
"old_method": "new_method"
}
Diff
Preview changes before refactoring:
$ claiss diff <project_path> <json_file> [options]
Options:
-
--context=N
: Number of context lines (default: 3) -
--color=WHEN
: Colorize output (always, never, auto)
Fix Ruby Permissions
Fix file permissions for Ruby projects:
$ claiss fix_ruby_permissions <project_path>
🔍 Example Workflow
-
Create a refactoring plan:
{ "old_name": "new_name", "OldModule": "NewModule", "@old_attr": "@new_attr" }
-
Preview changes:
$ claiss diff my_project changes.json
-
Apply changes:
$ claiss refactor my_project changes.json
🛡️ Safety Features
- Creates backups before making changes
- Dry-run mode to preview changes
- Ignores version control directories (
.git/
,.hg/
) - Skips binary files by default
- Preserves file permissions
🤝 Contributing
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
📄 License
Distributed under the MIT License. See LICENSE
for more information.
👨💻 Author
- Júlio Papel - @JulioPapel
🙏 Acknowledgments
- Thanks to all contributors who have helped improve CLAISS
- Inspired by various open-source refactoring tools
Português
CLAISS é uma poderosa ferramenta de linha de comando em Ruby projetada para ajudar desenvolvedores a refatorar bases de código com facilidade. Oferece ferramentas para renomeação em lote, substituição de texto e gerenciamento de permissões em seus projetos.
✨ Funcionalidades
- 🔄 Refatoração de conteúdo e nomes de arquivos em lote
- 🔍 Visualização prévia das alterações
- 📊 Geração de relatórios detalhados de diferenças
- 🔒 Correção automática de permissões de arquivos Ruby
- 🚀 Processamento paralelo rápido
- 🛡️ Refatoração segura com opções de backup
🚀 Instalação
Instale a gem CLAISS:
gem install claiss
Ou adicione ao seu Gemfile:
gem 'claiss', '~> 1.0'
🛠️ Comandos
Versão
Verifique a versão do CLAISS:
$ claiss version
# Ou use os atalhos:
$ claiss v
$ claiss -v
$ claiss --version
Refatorar
Refatore conteúdos e nomes de arquivos usando um dicionário JSON:
$ claiss refactor <caminho_do_projeto> <arquivo_json> [opções]
Opções:
-
--destination, -d
: Especifica o diretório de saída (padrão: no local) -
--dry-run
: Visualiza as alterações sem modificar os arquivos -
--debug
: Mostra mensagens detalhadas de depuração durante o processamento
Exemplos:
# Modo normal
$ claiss refactor meu_projeto ~/.claiss/regras.json
# Especificando diretório de destino
$ claiss refactor meu_projeto ~/.claiss/regras.json --destination pasta_destino
# Modo debug (mostra mensagens detalhadas)
$ claiss refactor meu_projeto ~/.claiss/regras.json --debug
# Todas as opções juntas
$ claiss refactor meu_projeto ~/.claiss/regras.json --destination pasta_destino --debug
Formato do Dicionário JSON
O arquivo de regras pode estar em qualquer local, mas se estiver no diretório ~/.claiss/
, você pode usar apenas o nome do arquivo. Exemplo:
# Se o arquivo estiver em ~/.claiss/regras.json
$ claiss refactor meu_projeto regras.json
# Ou especifique o caminho completo
$ claiss refactor meu_projeto /caminho/completo/para/regras.json
Crie um arquivo JSON com pares chave-valor para as substituições:
{
"termo_antigo": "novo_termo",
"ClasseAntiga": "NovaClasse",
"metodo_antigo": "novo_metodo"
}
Diferenças
Visualize as alterações antes de refatorar:
$ claiss diff <caminho_do_projeto> <arquivo_json> [opções]
Opções:
-
--context=N
: Número de linhas de contexto (padrão: 3) -
--color=WHEN
: Colorir a saída (always, never, auto)
Corrigir Permissões
Corrija as permissões de arquivos em projetos Ruby:
$ claiss fix_ruby_permissions <caminho_do_projeto>
🔍 Fluxo de Trabalho Exemplo
-
Crie um plano de refatoração:
{ "nome_antigo": "novo_nome", "ModuloAntigo": "NovoModulo", "@atributo_antigo": "@novo_atributo" }
-
Visualize as alterações:
$ claiss diff meu_projeto alteracoes.json
-
Aplique as alterações:
$ claiss refactor meu_projeto alteracoes.json
🛡️ Recursos de Segurança
- Cria backups antes de fazer alterações
- Modo de simulação para visualização prévia
- Ignora diretórios de controle de versão (
.git/
,.hg/
) - Ignora arquivos binários por padrão
- Preserva as permissões dos arquivos
🤝 Como Contribuir
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/feature-incrivel
) - Faça commit das suas alterações (
git commit -m 'Adiciona uma feature incrível'
) - Faça push para a branch (
git push origin feature/feature-incrivel
) - Abra um Pull Request
📄 Licença
Distribuído sob a licença MIT. Veja LICENSE
para mais informações.
👨💻 Autor
- Júlio Papel - @JulioPapel
🙏 Agradecimentos
- A todos os contribuidores que ajudaram a melhorar o CLAISS
- Inspirado por várias ferramentas de refatoração open source