Skip to content

Instantly share code, notes, and snippets.

@rserna2010
Created September 5, 2013 06:09
Show Gist options
  • Select an option

  • Save rserna2010/6446588 to your computer and use it in GitHub Desktop.

Select an option

Save rserna2010/6446588 to your computer and use it in GitHub Desktop.
Turn Camelcase into Snakecase
output = this_is_camel_case
SPLIT words at upcase ignoring first upcase
at split add _
Join them
downcase entire string
input = 'ThisIsCamelCass'
def upcase?(letter)
if letter.upcase == letter
true
else
false
end
end
def snakecase(word)
split_array = word.split('')
snakecase_array = []
split_array.each do |letter|
if letter == split_array[0]
snakecase_array << letter
elsif upcase?(letter)
snakecase_array << "_#{letter}"
else
snakecase_array << letter
end
end
snakecase_array.join.downcase
end
puts snakecase(input)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment