Module: StringMagic

Extended by:
Core::Analysis, Core::Transformation
Defined in:
lib/string_magic.rb,
lib/string_magic/version.rb,
lib/string_magic/core/analysis.rb,
lib/string_magic/core/transformation.rb

Defined Under Namespace

Modules: Core Classes: Error, MalformedInputError

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Methods included from Core::Analysis

extract_entities, readability_score

Methods included from Core::Transformation

to_kebab_case, to_pascal_case, to_snake_case

Class Method Details

.alternating_case(string) ⇒ Object



54
55
56
# File 'lib/string_magic.rb', line 54

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)


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

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



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

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

.capitalize_words(string) ⇒ Object



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

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

.count_vowels(string) ⇒ Object



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

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

.hello_worldObject



15
16
17
# File 'lib/string_magic.rb', line 15

def self.hello_world
  "hello world!"
end

.palindrome?(string) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.remove_duplicates(string) ⇒ Object



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

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

.reverse_words(string) ⇒ Object



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

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

.snake_case(string) ⇒ Object



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

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

.title_case(string) ⇒ Object



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

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

.to_pig_latin(string) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/string_magic.rb', line 44

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



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

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