⚠️ 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.
gem install string_magicOu adicione ao seu Gemfile:
gem 'string_magic'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" |
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"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"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 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"# 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"bundle install
bundle exec rspec specbundle exec rspec spec --format documentation✅ 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 ✅
- TDD - Testes escritos antes da implementação
- Clean Code - Métodos claros e concisos
- Edge Case Handling - Validação robusta
- Ruby >= 3.2.0
- RSpec ~> 3.12 (testes)
- Bundler (gerenciamento de dependências)
- ✅ 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
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
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.
Tibério dos Santos Ferreira GitHub: https://github.com/tibas-ce
MIT