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