Module: StringMagic::Core::Transformation

Included in:
StringMagic
Defined in:
lib/string_magic/core/transformation.rb

Instance Method Summary collapse

Instance Method Details

#to_kebab_case(string) ⇒ Object



13
14
15
# File 'lib/string_magic/core/transformation.rb', line 13

def to_kebab_case(string)
  to_snake_case(string).tr("_", "-")
end

#to_pascal_case(string) ⇒ Object



17
18
19
20
21
22
# File 'lib/string_magic/core/transformation.rb', line 17

def to_pascal_case(string)
  return "" if string.nil?
  return string if string.match?(/^[A-Z][a-z]*([A-Z][a-z]*)*$/)

  string.split(/[-_\s]+/).map(&:capitalize).join
end

#to_snake_case(string) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/string_magic/core/transformation.rb', line 4

def to_snake_case(string)
  return "" if string.nil?

  string.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
        .gsub(/([a-z\d])([A-Z])/, '\1_\2')
        .tr("-", "_")
        .downcase
end