元のソース読むの面倒だったから、Wikipedia読んで一から書いた

class String
 def levenstein(other)
  return nil if self.empty?
  return nil if other.empty?
  
  
  # 距離行列のサイズを確定
  row_size = self.size + 1
  col_size = other.size + 1
  
  dm = []
  row_size.times do
   dm << Array.new(col_size)
  end
  
  # 距離行列の値を初期化
  for row in 0...row_size
   dm[row][0] = row
  end
  
  for col in 0...col_size
   dm[0][col] = col
  end

(↓に続く)