StringMagic - v0.5.0
StringMagic super-charges Ruby's String with batteries-included helpers for formatting, validation, analysis, transformation, and security all in one tidy gem.
Why StringMagic?
- Zero dependencies – pure Ruby
- Non-destructive: original strings are never mutated
- Thread-safe & fully tested (160+ RSpec examples, ~98% coverage)
- Drop-in: optionally auto-mixes into String, or use module methods (
StringMagic.to_slug(...))
Quickstart Cheatsheet
# Formatting
"Hello world".truncate_words(1) # => "Hello..."
"user@domain.com".mask_emails # => "u********@domain.com"
"Ruby on Rails".highlight('Ruby') # => "<mark>Ruby</mark> on Rails"
# Validation
"test@example.com".email? # => true
"4111111111111111".credit_card? # => true
"racecar".palindrome? # => true
# Transformation
"CamelCase".to_snake_case # => "camel_case"
"user input".to_filename_safe # => "user_input"
"second".ordinalize # => "2nd"
# Analysis
"Visit https://example.com".extract_urls # => ["https://example.com"]
"Great product!".sentiment_indicators # => {:positive=>1.0, :negative=>0.0, :neutral=>0}Installation
gem install string_magicOr add to your Gemfile:
gem 'string_magic'Full Documentation
Core Operations
-
Case conversion:
to_snake_case,to_kebab_case,to_camel_case,to_pascal_case,to_title_case -
Text manipulation:
reverse_words,alternating_case,remove_duplicate_chars,remove_duplicate_words -
HTML handling:
remove_html_tags,escape_html
Validation
- Format checks:
email?,url?,phone?,credit_card? - Text relations:
palindrome?,anagram_of? - Password strength:
strong_password?
Analysis
-
Entity extraction:
extract_emails,extract_urls,extract_phones,extract_dates -
Text metrics:
readability_score,word_frequency,sentiment_indicators
Formatting
-
Truncation:
truncate_words,truncate_sentences,truncate_characters,smart_truncate -
Highlighting:
highlight,remove_highlights,highlight_urls
Security
-
Data masking:
mask_sensitive_data,mask_credit_cards,mask_emails,mask_phones -
Detection:
contains_sensitive_data?
Utilities
-
Inflection:
to_plural,to_singular,ordinalize,humanize -
Slug generation:
to_slug,to_url_slug,to_filename_safe
Contributing
- Fork →
git checkout -b feature/awesome - Add specs for your change
bundle exec rspec- PR ✉️ – we love improvements!
License
MIT - See LICENSE for details.