fpd_string_tools 1.0.0
fpd_string_tools: ^1.0.0 copied to clipboard
Flutter Pilot - String Tools - Utilidades avanzadas para manipulación de strings
fpd_string_tools #
Flutter Pilot - String Tools - Utilidades avanzadas para manipulación de strings en Dart/Flutter.
🚀 Características #
📝 Conversiones de Case #
- lowercase: Convierte a minúsculas
- uppercase: Convierte a mayúsculas
- camelCase: Convierte a camelCase
- capitalCase: Convierte a Capital Case
- constantCase: Convierte a CONSTANT_CASE
- dotCase: Convierte a dot.case
- headerCase: Convierte a Header-Case
- noCase: Convierte a no-case
- paramCase: Convierte a param-case
- pascalCase: Convierte a PascalCase
- pathCase: Convierte a path/case
- sentenceCase: Convierte a sentence case
- snakeCase: Convierte a snake_case
- mockingCase: Convierte a MoCkInG cAsE
🔧 Utilidades Adicionales #
- truncate: Trunca strings con ellipsis
- isPalindrome: Verifica si es palíndromo
- reverse: Invierte un string
- wordCount: Cuenta palabras
- charCount: Cuenta caracteres (sin espacios)
- isAlpha: Verifica si solo contiene letras
- isNumeric: Verifica si solo contiene números
- isAlphanumeric: Verifica si contiene letras y números
- removeDuplicates: Remueve caracteres duplicados
- normalizeSpaces: Normaliza espacios
- toSlug: Genera slugs URL-friendly
- capitalizeSentences: Capitaliza oraciones
- toTitle: Convierte a título
📦 Instalación #
Agrega la dependencia a tu pubspec.yaml:
dependencies:
fpd_string_tools: ^1.0.0
Luego ejecuta:
dart pub get
🎯 Uso #
Importar el paquete #
import 'package:fpd_string_tools/fpd_string_tools.dart';
Conversiones de Case #
const text = 'lorem ipsum dolor sit amet';
// Conversiones básicas
StringCaseConverter.lowercase(text); // "lorem ipsum dolor sit amet"
StringCaseConverter.uppercase(text); // "LOREM IPSUM DOLOR SIT AMET"
StringCaseConverter.camelCase(text); // "loremIpsumDolorSitAmet"
StringCaseConverter.pascalCase(text); // "LoremIpsumDolorSitAmet"
StringCaseConverter.snakeCase(text); // "lorem_ipsum_dolor_sit_amet"
StringCaseConverter.paramCase(text); // "lorem-ipsum-dolor-sit-amet"
// Conversiones especiales
StringCaseConverter.constantCase(text); // "LOREM_IPSUM_DOLOR_SIT_AMET"
StringCaseConverter.dotCase(text); // "lorem.ipsum.dolor.sit.amet"
StringCaseConverter.pathCase(text); // "lorem/ipsum/dolor/sit/amet"
StringCaseConverter.mockingCase(text); // "LoReM iPsUm DoLoR SiT AmEt"
Utilidades de Strings #
// Truncar texto
StringUtils.truncate('Texto muy largo', 10); // "Texto muy..."
// Verificar palíndromo
StringUtils.isPalindrome('racecar'); // true
// Invertir string
StringUtils.reverse('hello'); // "olleh"
// Contar palabras y caracteres
StringUtils.wordCount('hello world'); // 2
StringUtils.charCount('hello world'); // 10
// Validaciones
StringUtils.isAlpha('hello'); // true
StringUtils.isNumeric('123'); // true
StringUtils.isAlphanumeric('abc123'); // true
// Manipulación
StringUtils.removeDuplicates('hello'); // "helo"
StringUtils.normalizeSpaces('hello world'); // "hello world"
StringUtils.toSlug('Hello World!'); // "hello-world"
StringUtils.toTitle('the quick brown fox'); // "The Quick Brown Fox"
📋 Ejemplos Prácticos #
Convertir nombres de variables #
const variableName = 'user first name';
final camelCase = StringCaseConverter.camelCase(variableName); // "userFirstName"
final snakeCase = StringCaseConverter.snakeCase(variableName); // "user_first_name"
final pascalCase = StringCaseConverter.pascalCase(variableName); // "UserFirstName"
Generar slugs para URLs #
const title = 'My Awesome Blog Post!';
final slug = StringUtils.toSlug(title); // "my-awesome-blog-post"
Validar entrada de usuario #
bool isValidUsername(String username) {
return StringUtils.isAlphanumeric(username) &&
username.length >= 3 &&
username.length <= 20;
}
Formatear texto para mostrar #
const rawText = 'hello. world! how are you?';
final formatted = StringUtils.capitalizeSentences(rawText); // "Hello. World! How are you?"
🧪 Testing #
Ejecuta los tests:
dart test
📚 API Completa #
StringCaseConverter #
| Método | Descripción | Ejemplo |
|---|---|---|
lowercase() |
Convierte a minúsculas | "LOREM" → "lorem" |
uppercase() |
Convierte a mayúsculas | "lorem" → "LOREM" |
camelCase() |
Convierte a camelCase | "lorem ipsum" → "loremIpsum" |
capitalCase() |
Convierte a Capital Case | "lorem ipsum" → "Lorem Ipsum" |
constantCase() |
Convierte a CONSTANT_CASE | "lorem ipsum" → "LOREM_IPSUM" |
dotCase() |
Convierte a dot.case | "lorem ipsum" → "lorem.ipsum" |
headerCase() |
Convierte a Header-Case | "lorem ipsum" → "Lorem-Ipsum" |
noCase() |
Convierte a no-case | "LOREM_IPSUM" → "lorem ipsum" |
paramCase() |
Convierte a param-case | "lorem ipsum" → "lorem-ipsum" |
pascalCase() |
Convierte a PascalCase | "lorem ipsum" → "LoremIpsum" |
pathCase() |
Convierte a path/case | "lorem ipsum" → "lorem/ipsum" |
sentenceCase() |
Convierte a sentence case | "LOREM IPSUM" → "Lorem ipsum" |
snakeCase() |
Convierte a snake_case | "lorem ipsum" → "lorem_ipsum" |
mockingCase() |
Convierte a MoCkInG cAsE | "hello" → "HeLlO" |
StringUtils #
| Método | Descripción | Ejemplo |
|---|---|---|
truncate() |
Trunca con ellipsis | "Hello World", 8 → "Hello..." |
isPalindrome() |
Verifica palíndromo | "racecar" → true |
reverse() |
Invierte string | "hello" → "olleh" |
wordCount() |
Cuenta palabras | "hello world" → 2 |
charCount() |
Cuenta caracteres | "hello world" → 10 |
isAlpha() |
Solo letras | "hello" → true |
isNumeric() |
Solo números | "123" → true |
isAlphanumeric() |
Letras y números | "abc123" → true |
removeDuplicates() |
Remueve duplicados | "hello" → "helo" |
normalizeSpaces() |
Normaliza espacios | "hello world" → "hello world" |
toSlug() |
Genera slug | "Hello World!" → "hello-world" |
capitalizeSentences() |
Capitaliza oraciones | "hello. world!" → "Hello. World!" |
toTitle() |
Convierte a título | "the quick fox" → "The Quick Fox" |
🤝 Contribuir #
Las contribuciones son bienvenidas! Por favor:
- Fork el repositorio
- Crea una rama para tu feature
- Commit tus cambios
- Push a la rama
- Abre un Pull Request
📄 Licencia #
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
🚀 Roadmap #
- ❌ Soporte para caracteres especiales y Unicode
- ❌ Funciones de búsqueda y reemplazo avanzadas
- ❌ Validación de emails y URLs
- ❌ Funciones de hash y encriptación básica
- ❌ Soporte para múltiples idiomas
Autor: Sebastián Larrauri
Email: dash@flutterpilot.dev
Web: flutterpilot.dev
Hecho con ❤️ para la comunidad Flutter/Dart