Method: HTMLDiff.html2list

Defined in:
lib/diff.rb

.html2list(x) ⇒ Object



413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
# File 'lib/diff.rb', line 413

def self.html2list(x)
  mode = :char
  cur = ''
  out = []
  
  x.split('').each do |c|
    if mode == :tag
      cur += c
      if c == '>'
        out.push(cur)
        cur = ''
        mode = :char
      end
    elsif mode == :char
      if c == '<'
        out.push cur
        cur = c
        mode = :tag
      elsif c =~ /\s/
        out.push cur + c
        cur = ''
      else
        cur += c
      end
    end
  end

  out.push cur
  out.find_all { |x| x != '' }
end