ruby - word-count

This commit is contained in:
James Walker 2018-10-24 10:23:37 -04:00
parent d16fe6a02a
commit eb41f1b49f
Signed by: walkah
GPG Key ID: 3C127179D6086E93

View File

@ -1,14 +1,20 @@
# Phrase class
class Phrase
def initialize(phrase)
@phrase = phrase
@words = phrase.downcase.scan(/\w+(?:'\w)*/)
end
def word_count
counts = {}
@phrase.scan(/\w+(?:'\w)*/).each do |word|
word.downcase!
counts[word] = counts[word].to_i + 1
end
counts
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] }
end
end