class Rundown::Processors::Frequency
Attributes
length[RW]
Public Class Methods
new(words, length=1)
click to toggle source
Calls superclass method
Rundown::Processor::new
# File lib/rundown/processors/frequency.rb, line 6 def initialize(words, length=1) super(words) @length = length end
Public Instance Methods
cleanup_words!()
click to toggle source
# File lib/rundown/processors/frequency.rb, line 11 def cleanup_words! @words = words.map {|w| w.gsub(/[^\w]/, '').downcase }.reject {|w| w.strip == '' } end
process()
click to toggle source
# File lib/rundown/processors/frequency.rb, line 15 def process cleanup_words! frequencies = {} words.length.times do phrase = words[0..length-1] if phrase.join('').length >= 1 frequencies[phrase] ||= 0 frequencies[phrase] += 1 end @words = words.rotate end totals = {} frequencies.each do |phrase, freq| totals[freq] ||= [] totals[freq] << phrase end totals end