Module: StringMagic

Extended by:
Advanced::Security, Core::Analysis, Core::Transformation, Formatting::Highlighting, Formatting::Truncation
Defined in:
lib/string_magic.rb,
lib/string_magic/version.rb,
lib/string_magic/core/analysis.rb,
lib/string_magic/advanced/security.rb,
lib/string_magic/core/transformation.rb,
lib/string_magic/formatting/truncation.rb,
lib/string_magic/formatting/highlighting.rb

Defined Under Namespace

Modules: Advanced, Core, Formatting Classes: Error, MalformedInputError

Constant Summary collapse

VERSION =
"0.4.0"

Class Method Summary collapse

Methods included from Core::Analysis

extract_entities, readability_score

Methods included from Core::Transformation

titleize_names, to_kebab_case, to_pascal_case, to_snake_case

Methods included from Formatting::Highlighting

highlight

Methods included from Formatting::Truncation

truncate_sentences, truncate_words

Methods included from Advanced::Security

mask_sensitive_data

Class Method Details

.alternating_case(string) ⇒ Object



59
60
61
# File 'lib/string_magic.rb', line 59

def self.alternating_case(string)
  string.chars.map.with_index { |char, i| i.even? ? char.upcase : char.downcase }.join
end

.anagram?(string1, string2) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
78
79
# File 'lib/string_magic.rb', line 75

def self.anagram?(string1, string2)
  processed_string1 = string1.downcase.gsub(/[^a-z0-9]/, "").chars.sort.join
  processed_string2 = string2.downcase.gsub(/[^a-z0-9]/, "").chars.sort.join
  processed_string1 == processed_string2
end

.camel_case(string) ⇒ Object



63
64
65
# File 'lib/string_magic.rb', line 63

def self.camel_case(string)
  string.split.map(&:capitalize).join
end

.capitalize_words(string) ⇒ Object



33
34
35
# File 'lib/string_magic.rb', line 33

def self.capitalize_words(string)
  string.split.map(&:capitalize).join(" ")
end

.count_vowels(string) ⇒ Object



45
46
47
# File 'lib/string_magic.rb', line 45

def self.count_vowels(string)
  string.downcase.count("aeiou")
end

.hello_worldObject



20
21
22
# File 'lib/string_magic.rb', line 20

def self.hello_world
  "hello world!"
end

.palindrome?(string) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
# File 'lib/string_magic.rb', line 28

def self.palindrome?(string)
  cleaned = string.downcase.gsub(/[^a-z0-9]/, "")
  cleaned == cleaned.reverse
end

.remove_duplicates(string) ⇒ Object



41
42
43
# File 'lib/string_magic.rb', line 41

def self.remove_duplicates(string)
  string.chars.uniq.join
end

.reverse_words(string) ⇒ Object



37
38
39
# File 'lib/string_magic.rb', line 37

def self.reverse_words(string)
  string.split.reverse.join(" ")
end

.snake_case(string) ⇒ Object



67
68
69
# File 'lib/string_magic.rb', line 67

def self.snake_case(string)
  string.downcase.gsub(/\s+/, "_")
end

.title_case(string) ⇒ Object



71
72
73
# File 'lib/string_magic.rb', line 71

def self.title_case(string)
  string.split.map(&:capitalize).join(" ")
end

.to_pig_latin(string) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/string_magic.rb', line 49

def self.to_pig_latin(string)
  string.split.map do |word|
    if word[0] =~ /[aeiou]/i
      word + "ay"
    else
      word[1..-1] + word[0] + "ay"
    end
  end.join(" ")
end

.word_count(string) ⇒ Object



24
25
26
# File 'lib/string_magic.rb', line 24

def self.word_count(string)
  string.split.size
end