Project

claiss

0.0
The project is in a healthy, maintained state
CLAISS é uma ferramenta poderosa para refatoração de código em lote, permitindo renomear e substituir termos em múltiplos arquivos de forma segura e eficiente. Inclui recursos como visualização de diferenças, modo de simulação e correção automática de permissões para projetos Ruby.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 3.10
~> 13.0
~> 3.12
~> 0.22.0
~> 3.19

Runtime

~> 3.4.3
~> 1.7.1
~> 2.10.2
~> 1.0.0
 Project Readme

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.

Build Status Gem Version Maintainability Test Coverage

✨ 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

  1. Create a refactoring plan:

    {
      "old_name": "new_name",
      "OldModule": "NewModule",
      "@old_attr": "@new_attr"
    }
  2. Preview changes:

    $ claiss diff my_project changes.json
  3. 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

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.

👨‍💻 Author

🙏 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

  1. Crie um plano de refatoração:

    {
      "nome_antigo": "novo_nome",
      "ModuloAntigo": "NovoModulo",
      "@atributo_antigo": "@novo_atributo"
    }
  2. Visualize as alterações:

    $ claiss diff meu_projeto alteracoes.json
  3. 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

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/feature-incrivel)
  3. Faça commit das suas alterações (git commit -m 'Adiciona uma feature incrível')
  4. Faça push para a branch (git push origin feature/feature-incrivel)
  5. Abra um Pull Request

📄 Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

👨‍💻 Autor

🙏 Agradecimentos

  • A todos os contribuidores que ajudaram a melhorar o CLAISS
  • Inspirado por várias ferramentas de refatoração open source