# File lib/numerizer/numerizer.rb, line 48
  def numerize(string)
    string = string.dup
  
    # preprocess
    string.gsub!(/ +|([^\d])-([^d])/, '\1 \2') # will mutilate hyphenated-words but shouldn't matter for date extraction
    string.gsub!(/a half/, 'haAlf') # take the 'a' out so it doesn't turn into a 1, save the half for the end

    # easy/direct replacements
  
    DIRECT_NUMS.each do |dn|
      string.gsub!(/#{dn[0]}/i, dn[1])
    end

    # ten, twenty, etc.

    TEN_PREFIXES.each do |tp|
      string.gsub!(/(?:#{tp[0]})( *\d(?=[^\d]|$))*/i) { (tp[1] + $1.to_i).to_s }
    end

    # hundreds, thousands, millions, etc.

    BIG_PREFIXES.each do |bp|
      string.gsub!(/(\d*) *#{bp[0]}/i) { (bp[1] * $1.to_i).to_s}
      andition(string)
      #combine_numbers(string) # Should to be more efficient way to do this
    end

    # fractional addition
    # I'm not combining this with the previous block as using float addition complicates the strings
    # (with extraneous .0's and such )
    string.gsub!(/(\d+)(?: | and |-)*haAlf/i) { ($1.to_f + 0.5).to_s }

    string
  end