Class: AmazonTRP::Document

Inherits:
Object
  • Object
show all
Defined in:
lib/amazon-textract-parser-ruby.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(responsePages) ⇒ Document

Returns a new instance of Document.



536
537
538
539
540
# File 'lib/amazon-textract-parser-ruby.rb', line 536

def initialize(responsePages)
  @responsePages = responsePages.is_a?(Array) ? responsePages : [responsePages]
  @pages = []
  _parse()
end

Instance Attribute Details

#blocksObject (readonly)

Returns the value of attribute blocks.



532
533
534
# File 'lib/amazon-textract-parser-ruby.rb', line 532

def blocks
  @blocks
end

#pageBlocksObject (readonly)

Returns the value of attribute pageBlocks.



533
534
535
# File 'lib/amazon-textract-parser-ruby.rb', line 533

def pageBlocks
  @pageBlocks
end

#pagesObject (readonly)

Returns the value of attribute pages.



534
535
536
# File 'lib/amazon-textract-parser-ruby.rb', line 534

def pages
  @pages
end

Instance Method Details

#_parseObject



576
577
578
579
580
581
582
# File 'lib/amazon-textract-parser-ruby.rb', line 576

def _parse
  @responseDocumentPages, @blockMap = _parseDocumentPagesAndBlockMap()
  @responseDocumentPages.each do |documentPage|
    page = Page.new(documentPage[:blocks], @blockMap)
    @pages.append(page)
  end
end

#_parseDocumentPagesAndBlockMapObject



550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
# File 'lib/amazon-textract-parser-ruby.rb', line 550

def _parseDocumentPagesAndBlockMap
  blockMap = {}
  
  documentPages = []
  documentPage = nil
  @responsePages.each do |page|
    unless page[:blocks].nil?
      page[:blocks].each do |block|
        if block.has_key?(:block_type) && block.has_key?(:id)
          blockMap[block[:id]] = block
        end
        
        if block[:block_type] == 'PAGE'
          documentPages.append({:blocks => documentPage}) if documentPage
          documentPage = []
          documentPage.append(block)
        else
          documentPage.append(block)
        end
      end
    end
  end
  documentPages.append({:blocks => documentPage}) if documentPage
  return documentPages, blockMap
end

#getBlockById(blockId) ⇒ Object



584
585
586
587
# File 'lib/amazon-textract-parser-ruby.rb', line 584

def getBlockById(blockId)
  return @blockMap[blockId] if @blockMap && @blockMap.has_key?(blockId)
  return nil
end

#to_sObject



542
543
544
545
546
547
548
# File 'lib/amazon-textract-parser-ruby.rb', line 542

def to_s
  s = "\nDocument:\n"
  @pages.each do |p|
    s = s + p.to_s + "\n\n"
  end
  return s
end