Skip to content

tibas-ce/string_magic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StringMagic 🪄

Ruby Tests License

⚠️ Projeto de Estudos - Esta gem foi criada como exercício de aprendizado de desenvolvimento de gems Ruby, TDD e manipulação de strings.

StringMagic fornece um conjunto simples e eficiente de funções utilitárias para conversão e transformação de strings.

Ideal para quem deseja padronizar strings ou aprender boas práticas de desenvolvimento Ruby.


📦 Instalação

gem install string_magic

Ou adicione ao seu Gemfile:

gem 'string_magic'

🔧 API

Abaixo está um resumo das funções disponíveis:

Função Descrição Exemplo
to_snake_case Converte uma string para snake_case. "UserName""user_name"
to_camel_case Converte uma string para camelCase. "user_name""userName"
to_title_case Converte para Title Case. "hello_world""Hello World"
remove_special_chars Remove caracteres especiais, com opção de manter espaços. "hello@world!""helloworld"

🚀 Uso

to_snake_case

Converte strings para snake_case:

StringMagic.to_snake_case("userName")        # => "user_name"
StringMagic.to_snake_case("UserName")        # => "user_name"
StringMagic.to_snake_case("user name")       # => "user_name"
StringMagic.to_snake_case("getUserHTTP")     # => "get_user_http"

to_camel_case

Converte strings para camelCase:

StringMagic.to_camel_case("user_name")       # => "userName"
StringMagic.to_camel_case("user name")       # => "userName"
StringMagic.to_camel_case("user-name")       # => "userName"

to_title_case

Converte strings para Title Case:

StringMagic.to_title_case("hello world")     # => "Hello World"
StringMagic.to_title_case("HELLO WORLD")     # => "Hello World"
StringMagic.to_title_case("hello_world")     # => "Hello World"

remove_special_chars

Remove caracteres especiais:

StringMagic.remove_special_chars("hello@world!")                    # => "helloworld"
StringMagic.remove_special_chars("hello world!", keep_spaces: false) # => "helloworld"
StringMagic.remove_special_chars("user#123")                        # => "user123"

Conversões Complexas

# Lidando com múltiplas palavras e números
StringMagic.to_snake_case("getUserHTTPResponse")  
# => "get_user_http_response"

StringMagic.to_camel_case("user_name_123_test")   
# => "userName123Test"

# Lidando com caracteres especiais
StringMagic.remove_special_chars("hello@world!", keep_spaces: false)
# => "helloworld"

# Encadeamento de conversões
input = "User-Profile Data!"
clean = StringMagic.remove_special_chars(input)      # => "UserProfile Data"
snake = StringMagic.to_snake_case(clean)             # => "user_profile_data"
title = StringMagic.to_title_case(snake)             # => "User Profile Data"

🧪 Testes

Executar os testes

bundle install
bundle exec rspec spec

Testes com saída detalhada

bundle exec rspec spec --format documentation

Cobertura de Testes

Conversões básicas - Funcionalidades principais
Edge cases - nil, empty, single character
Strings com números - Alfanumérico
Múltiplos separadores - Espaços, hífens, underscores
Caracteres especiais - Pontuação, símbolos
Acentos - Suporte a caracteres internacionais
Testes de integração - Métodos em conjunto

Total: 60+ casos de teste | 100% passando ✅


🔍 Qualidade do Código

Princípios Aplicados

  • TDD - Testes escritos antes da implementação
  • Clean Code - Métodos claros e concisos
  • Edge Case Handling - Validação robusta

Stack Tecnológica

  • Ruby >= 3.2.0
  • RSpec ~> 3.12 (testes)
  • Bundler (gerenciamento de dependências)

🎯 Status do Projeto

  • ✅ Implementação completa dos 4 métodos principais
  • ✅ Cobertura completa de testes (60+ casos)
  • ✅ Tratamento robusto de edge cases
  • ✅ Documentação completa
  • 📝 Próximo: Suporte a Unicode avançado

📚 Aprendizados

Este projeto me ajudou a aprender:

  • ✅ Estrutura e desenvolvimento de gems Ruby com Bundle
  • TDD com RSpec (60+ testes)
  • ✅ Manipulação avançada de strings e regex
  • ✅ Tratamento de edge cases
  • ✅ Documentação técnica
  • ✅ Boas práticas de código Ruby
  • ✅ Versionamento semântico

🤝 Contribuindo

Obrigado pelo interesse em contribuir com o projeto StringMagic!
Apesar de ser uma gem de estudos, contribuições, melhorias e sugestões são muito bem-vindas através de issues.


👨‍💻 Autor

Tibério dos Santos Ferreira GitHub: https://github.com/tibas-ce


📄 Licença

MIT

About

Gem de Formatação de Strings

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published