Sha256: 48051b8f2475138a27e014b357759fe79cca750cf66ed3651bb035d20ddc549e

Contents?: true

Size: 1.07 KB

Versions: 3

Compression:

Stored size: 1.07 KB

Contents

module Tabula
  class Line < ZoneEntity
    attr_accessor :text_elements
    attr_reader :index

    def initialize(index=nil)
      @text_elements = []
      @index = index
    end

    def <<(t)
      if @text_elements.size == 0
        @text_elements << t
        self.top = t.top
        self.left = t.left
        self.width = t.width
        self.height = t.height
      else
        if in_same_column = @text_elements.find { |te| te.horizontally_overlaps?(t) }
          in_same_column.merge!(t)
        else
          self.text_elements << t
          self.merge!(t)
        end
      end
    end

    #used for testing, ignores text element stuff besides stripped text.
    def ==(other)
      return false if other.nil?
      self.text_elements = self.text_elements.rpad(TextElement::EMPTY, other.text_elements.size)
      other.text_elements = other.text_elements.rpad(TextElement::EMPTY, self.text_elements.size)
      self.text_elements.zip(other.text_elements).inject(true) do |memo, my_yours|
        my, yours = my_yours
        memo && my == yours
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tabula-extractor-0.7.2-java lib/tabula/entities/line.rb
tabula-extractor-0.7.1-java lib/tabula/entities/line.rb
tabula-extractor-0.7.0-java lib/tabula/entities/line.rb