exercism/ruby/word-count/word_count.rb

21 lines
310 B
Ruby
Raw Normal View History

2018-10-24 10:23:37 -04:00
# Phrase class
2018-09-19 10:43:56 -04:00
class Phrase
def initialize(phrase)
2018-10-24 10:23:37 -04:00
@words = phrase.downcase.scan(/\w+(?:'\w)*/)
2018-09-19 10:43:56 -04:00
end
def word_count
2018-10-24 10:23:37 -04:00
Hash[word_counts]
end
private
def word_groups
@words.group_by { |word| word }
end
def word_counts
word_groups.map { |word, list| [word, list.size] }
2018-09-19 10:43:56 -04:00
end
end