diff --git a/.github/workflows/_publish-code.yml b/.github/workflows/_publish-code.yml index 17cda711..00ff4db8 100644 --- a/.github/workflows/_publish-code.yml +++ b/.github/workflows/_publish-code.yml @@ -16,7 +16,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "3.0" + ruby-version: "3.2" bundler-cache: true - name: Set credentials diff --git a/.github/workflows/_publish-docs.yml b/.github/workflows/_publish-docs.yml index e1070062..989494d9 100644 --- a/.github/workflows/_publish-docs.yml +++ b/.github/workflows/_publish-docs.yml @@ -17,7 +17,7 @@ jobs: - name: set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "3.1" + ruby-version: "3.2" bundler-cache: true - name: Analyse the code with Rubocop diff --git a/.github/workflows/_static-analysis.yml b/.github/workflows/_static-analysis.yml index 6b2a1ccf..d3519928 100644 --- a/.github/workflows/_static-analysis.yml +++ b/.github/workflows/_static-analysis.yml @@ -19,7 +19,7 @@ jobs: - name: set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "3.0.0" + ruby-version: "3.2.0" bundler-cache: true - name: Set up Python diff --git a/.github/workflows/_test-cli.yml b/.github/workflows/_test-cli.yml index 2a2793fa..d8c2581b 100644 --- a/.github/workflows/_test-cli.yml +++ b/.github/workflows/_test-cli.yml @@ -24,7 +24,7 @@ jobs: - os: "windows-latest" rid: "win-x64" ruby: - - "3.0" + - "3.2" - "4.0" runs-on: ${{ matrix.os_config.os }} steps: diff --git a/.github/workflows/_test-integrations.yml b/.github/workflows/_test-integrations.yml index b0c86165..0a75c361 100644 --- a/.github/workflows/_test-integrations.yml +++ b/.github/workflows/_test-integrations.yml @@ -32,7 +32,7 @@ jobs: - "ubuntu-24.04" - "macos-latest" ruby: - - "3.0" + - "3.2" - "4.0" steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/_test-smoke.yml b/.github/workflows/_test-smoke.yml index a22fa8c6..7a3579d4 100644 --- a/.github/workflows/_test-smoke.yml +++ b/.github/workflows/_test-smoke.yml @@ -24,11 +24,10 @@ jobs: strategy: matrix: ruby: - - "3.0" - - "3.1" - "3.2" - "3.3" - "3.4" + - "4.0" runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/_test-units.yml b/.github/workflows/_test-units.yml index e677d36a..58811cf4 100644 --- a/.github/workflows/_test-units.yml +++ b/.github/workflows/_test-units.yml @@ -18,8 +18,6 @@ jobs: - "ubuntu-22.04" - "macos-latest" ruby: - - "3.0" - - "3.1" - "3.2" - "3.3" - "3.4" diff --git a/.rubocop.yml b/.rubocop.yml index d7fcf91c..cee4fe23 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -10,7 +10,7 @@ AllCops: - local_test/* - Steepfile - TargetRubyVersion: 3.0.0 + TargetRubyVersion: 3.2 SuggestExtensions: false Gemspec/DevelopmentDependencies: diff --git a/README.md b/README.md index b49077b8..627ff976 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ https://app.mindee.com It uses **API version 2**. Consult the -**[V2 Documentation](https://docs.mindee.com/integrations/client-libraries-sdk)** +**V2 Documentation** ### V1 @@ -26,17 +26,17 @@ https://platform.mindee.com/ It uses **API version 1**. Consult the -[V1 Documentation](https://docs.mindee.com/v1/libraries/ruby-sdk) +V1 Documentation ## Additional Information -**[Source Code](https://github.com/mindee/mindee-api-ruby)** +**Source Code** -**[Reference Documentation](https://mindee.github.io/mindee-api-ruby/)** +**Reference Documentation** -**[Feedback](https://feedback.mindee.com/)** +**Feedback** ### License Copyright © Mindee -Available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). +Available as open source under the terms of the MIT License. diff --git a/bin/v2/products.rb b/bin/v2/products.rb index be9320cd..d96a6acc 100644 --- a/bin/v2/products.rb +++ b/bin/v2/products.rb @@ -25,7 +25,7 @@ }, 'ocr' => { description: 'OCR Utility', - response_class: Mindee::V2::Product::Ocr::Ocr, + response_class: Mindee::V2::Product::OCR::OCR, }, 'split' => { description: 'Split Utility', diff --git a/docs/code_samples/v2_ocr.txt b/docs/code_samples/v2_ocr.txt index 1f038471..db4f7b50 100644 --- a/docs/code_samples/v2_ocr.txt +++ b/docs/code_samples/v2_ocr.txt @@ -21,7 +21,7 @@ input_source = Mindee::Input::Source::PathInputSource.new(input_path) # Send for processing response = mindee_client.enqueue_and_get_result( - Mindee::V2::Product::Ocr::Ocr, + Mindee::V2::Product::OCR::OCR, input_source, ocr_params ) diff --git a/lib/mindee.rb b/lib/mindee.rb index fb157a3e..bf8c6b3b 100644 --- a/lib/mindee.rb +++ b/lib/mindee.rb @@ -86,6 +86,13 @@ module Standard module Universal end end + + # V1-specific products. + module Product + # French products. + module FR + end + end end # V2-specific module. @@ -94,6 +101,7 @@ module V2 module HTTP end + # File operations. module FileOperation # Crop operations. module Crop diff --git a/lib/mindee/geometry/polygon.rb b/lib/mindee/geometry/polygon.rb index e2e2b1ad..9d99a729 100644 --- a/lib/mindee/geometry/polygon.rb +++ b/lib/mindee/geometry/polygon.rb @@ -7,7 +7,7 @@ module Geometry class Polygon < Array # @param server_response [Hash] Raw server response hash. def initialize(server_response) - points = [] + points = [] # @type var points: Array[Mindee::Geometry::Point] server_response.map do |point| points << Point.new(point[0], point[1]) end @@ -30,7 +30,7 @@ def point_in_y?(point) # @return [String] Polygon as a string. def to_s - "(#{map(&:to_s).join(', ')})" + "(#{join(', ')})" end end end diff --git a/lib/mindee/image/image_extractor.rb b/lib/mindee/image/image_extractor.rb index 0599b425..98f68537 100644 --- a/lib/mindee/image/image_extractor.rb +++ b/lib/mindee/image/image_extractor.rb @@ -47,7 +47,7 @@ def self.extract_multiple_images_from_source(input_source, page_id, polygons) # @param [Array] polygons # @return [Array] Extracted Images. def self.extract_images_from_polygons(input_source, pdf_stream, page_id, polygons) - extracted_elements = [] + extracted_elements = [] # @type var extracted_elements: Array[Image::ExtractedImage] polygons.each_with_index do |polygon, element_id| polygon = ImageUtils.normalize_polygon(polygon) diff --git a/lib/mindee/input/base_parameters.rb b/lib/mindee/input/base_parameters.rb index 2de9352d..0651f2c7 100644 --- a/lib/mindee/input/base_parameters.rb +++ b/lib/mindee/input/base_parameters.rb @@ -54,6 +54,9 @@ def slug self.class.slug end + # Load from a hash + # @param [Hash] params Parameters to provide as a hash. + # @return [BaseParameters] def self.from_hash(params: {}) load_from_hash(params: params) new( diff --git a/lib/mindee/input/sources/path_input_source.rb b/lib/mindee/input/sources/path_input_source.rb index 2902de7e..da9b08c4 100644 --- a/lib/mindee/input/sources/path_input_source.rb +++ b/lib/mindee/input/sources/path_input_source.rb @@ -11,7 +11,7 @@ class PathInputSource < LocalInputSource # @param filepath [String] # @param repair_pdf [bool] def initialize(filepath, repair_pdf: false) - io_stream = File.open(filepath, 'rb') + io_stream = File.new(filepath, 'rb') super(io_stream, File.basename(filepath), repair_pdf: repair_pdf) end end diff --git a/lib/mindee/page_options.rb b/lib/mindee/page_options.rb index ad8f93ae..58bc4cb6 100644 --- a/lib/mindee/page_options.rb +++ b/lib/mindee/page_options.rb @@ -11,7 +11,7 @@ class PageOptions attr_accessor :page_indexes, :operation, :on_min_pages def initialize(params: {}) - params ||= {} + params ||= {} # : Hash[Symbol, untyped] params = params.transform_keys(&:to_sym) @page_indexes = params.fetch( :page_indexes, diff --git a/lib/mindee/pdf/extracted_pdf.rb b/lib/mindee/pdf/extracted_pdf.rb index 4c7a1ab0..7f2efb6f 100644 --- a/lib/mindee/pdf/extracted_pdf.rb +++ b/lib/mindee/pdf/extracted_pdf.rb @@ -13,11 +13,17 @@ class ExtractedPDF # @return [String] attr_reader :filename - # @param pdf_bytes [StringIO] + # @param pdf_stream [StringIO, File] # @param filename [String] - def initialize(pdf_bytes, filename) - @pdf_bytes = pdf_bytes + def initialize(pdf_stream, filename) @filename = filename + + if pdf_stream.is_a?(File) + pdf_stream.rewind + @pdf_bytes = StringIO.new(pdf_stream.read) + else + @pdf_bytes = pdf_stream + end end # Retrieves the page count for a given pdf. diff --git a/lib/mindee/pdf/pdf_extractor.rb b/lib/mindee/pdf/pdf_extractor.rb index c2b0df61..3e7f760e 100644 --- a/lib/mindee/pdf/pdf_extractor.rb +++ b/lib/mindee/pdf/pdf_extractor.rb @@ -40,7 +40,7 @@ def cut_pages(page_indexes) # @param page_indexes [Array>] List of page number to use for merging in the original Pdf. # @return [Array] The buffer containing the new Pdf. def extract_sub_documents(page_indexes) - extracted_pdfs = [] + extracted_pdfs = [] # @type var extracted_pdfs: Array[Mindee::PDF::ExtractedPDF] extension = File.extname(@filename) basename = File.basename(@filename, extension) page_indexes.each do |page_index_list| @@ -54,7 +54,7 @@ def extract_sub_documents(page_indexes) "Index #{page_index} is out of range." end end - formatted_max_index = format('%03d', page_index_list[page_index_list.length - 1] + 1).to_s + formatted_max_index = format('%03d', page_index_list[-1] + 1).to_s field_filename = "#{basename}_#{format('%03d', page_index_list[0] + 1)}-#{formatted_max_index}#{extension}" extracted_pdf = Mindee::PDF::ExtractedPDF.new(cut_pages(page_index_list), @@ -74,15 +74,15 @@ def extract_sub_documents(page_indexes) def extract_invoices(page_indexes, strict: false) raise Error::MindeePDFError, 'No indexes provided.' if page_indexes.empty? - if page_indexes[0].is_a?(Array) && page_indexes[0].all? { |i| i.is_a?(Integer) } + if page_indexes[0].is_a?(Array) && page_indexes[0].all?(Integer) page_indexes_as_array = page_indexes # @type var page_indexes : Array[Array[Integer]] return extract_sub_documents(page_indexes_as_array) end p_ids = page_indexes # @type var page_indexes: Product::InvoiceSplitter::InvoiceSplitterV1InvoicePageGroups return extract_sub_documents(p_ids.map(&:page_indexes)) unless strict - correct_page_indexes = [] - current_list = [] + correct_page_indexes = [] # @type var correct_page_indexes: Array[Array[Integer]] + current_list = [] # @type var current_list: Array[Integer] previous_confidence = nil p_ids.each_with_index do |p_i, i| page_index = p_i # @type var page_index: Product::InvoiceSplitter::InvoiceSplitterV1InvoicePageGroup diff --git a/lib/mindee/pdf/pdf_processor.rb b/lib/mindee/pdf/pdf_processor.rb index 4796c0e3..77841ab8 100644 --- a/lib/mindee/pdf/pdf_processor.rb +++ b/lib/mindee/pdf/pdf_processor.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'set' require 'origami' require_relative 'pdf_tools' diff --git a/lib/mindee/v1/extraction/multi_receipts_extractor.rb b/lib/mindee/v1/extraction/multi_receipts_extractor.rb index 0b87f272..fa3dbb6b 100644 --- a/lib/mindee/v1/extraction/multi_receipts_extractor.rb +++ b/lib/mindee/v1/extraction/multi_receipts_extractor.rb @@ -11,7 +11,7 @@ module Extraction # @param inference [Inference] Results of the inference. # @return [Array] Individual extracted receipts as an array of ExtractedMultiReceiptsImage. def self.extract_receipts(input_source, inference) - images = [] + images = [] # @type var images: Array[Image::ExtractedImage] unless inference.prediction.receipts raise Error::MindeeInputError, 'No possible receipts candidates found for Multi-Receipts extraction.' diff --git a/lib/mindee/v1/parsing/common/extras/cropper_extra.rb b/lib/mindee/v1/parsing/common/extras/cropper_extra.rb index 7fc94acf..a1290dfb 100644 --- a/lib/mindee/v1/parsing/common/extras/cropper_extra.rb +++ b/lib/mindee/v1/parsing/common/extras/cropper_extra.rb @@ -22,7 +22,7 @@ def initialize(raw_prediction, page_id = nil) # @return [String] def to_s - @croppings.map(&:to_s).join("\n ") + @croppings.join("\n ") end end end diff --git a/lib/mindee/v1/parsing/common/inference.rb b/lib/mindee/v1/parsing/common/inference.rb index 3f31c92e..53dfcf77 100644 --- a/lib/mindee/v1/parsing/common/inference.rb +++ b/lib/mindee/v1/parsing/common/inference.rb @@ -57,7 +57,7 @@ def to_s out_str << "\n#{"#{@prediction}\n" if @prediction.to_s.size.positive?}" if @pages.any? { |page| !page.prediction.nil? } out_str << "\nPage Predictions\n================\n\n" - out_str << @pages.map(&:to_s).join("\n\n") + out_str << @pages.join("\n\n") end out_str.rstrip! out_str diff --git a/lib/mindee/v1/parsing/common/ocr/ocr.rb b/lib/mindee/v1/parsing/common/ocr/ocr.rb index f7c1c912..79413667 100644 --- a/lib/mindee/v1/parsing/common/ocr/ocr.rb +++ b/lib/mindee/v1/parsing/common/ocr/ocr.rb @@ -6,7 +6,7 @@ module Mindee module V1 module Parsing module Common - # Ocr-specific parsing fields and options + # OCR-specific parsing fields and options module OCR # A single word. class OCRWord diff --git a/lib/mindee/v1/parsing/standard/company_registration_field.rb b/lib/mindee/v1/parsing/standard/company_registration_field.rb index fd00a7c9..c8841683 100644 --- a/lib/mindee/v1/parsing/standard/company_registration_field.rb +++ b/lib/mindee/v1/parsing/standard/company_registration_field.rb @@ -21,21 +21,21 @@ def initialize(prediction, page_id, reconstructed: false) # @return [String] The formatted table line, as a string. def to_table_line printable = printable_values - format('| %-15s | %-20s ', type: printable['type'], value: printable['value']) + format('| %-15s | %-20s ', type: printable[:type], value: printable[:value]) end # @return [String] def to_s printable = printable_values - format('Type: %s, Value: %s', type: printable['type'], value: printable['value']) + format('Type: %s, Value: %s', type: printable[:type], value: printable[:value]) end # Hashed representation of the values. # @return [Hash] Hash of the values. def printable_values - printable = {} - printable['type'] = type - printable['value'] = value + printable = {} # @type var printable: Hash[Symbol, String] + printable[:type] = type + printable[:value] = value.to_s printable end end diff --git a/lib/mindee/v1/parsing/standard/tax_field.rb b/lib/mindee/v1/parsing/standard/tax_field.rb index 0bc65347..657e0a00 100644 --- a/lib/mindee/v1/parsing/standard/tax_field.rb +++ b/lib/mindee/v1/parsing/standard/tax_field.rb @@ -49,7 +49,7 @@ def to_s # @return [Hash] def printable_values - out_h = {} + out_h = {} # @type var out_h: Hash[Symbol, String] out_h[:code] = @code.nil? ? '' : @code out_h[:base] = @base.nil? ? '' : print_float(@base) out_h[:rate] = @rate.nil? ? '' : print_float(@rate).to_s diff --git a/lib/mindee/v1/parsing/universal/universal_list_field.rb b/lib/mindee/v1/parsing/universal/universal_list_field.rb index 6793766c..da735839 100644 --- a/lib/mindee/v1/parsing/universal/universal_list_field.rb +++ b/lib/mindee/v1/parsing/universal/universal_list_field.rb @@ -46,7 +46,7 @@ def contents_list # Return a string representation of all values. def contents_string(separator = ' ') - @values.map(&:to_s).join(separator) + @values.join(separator) end # String representation diff --git a/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb b/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb index cfa50f75..c6a6cffb 100644 --- a/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb +++ b/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb @@ -9,6 +9,7 @@ module BarcodeReader # Barcode Reader API version 1.0 document data. class BarcodeReaderV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # List of decoded 1D barcodes. # @return [Array] attr_reader :codes_1d diff --git a/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb b/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb index 561e4253..2a879f46 100644 --- a/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb +++ b/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb @@ -10,6 +10,7 @@ module FinancialDocument # Financial Document API version 1.14 document data. class FinancialDocumentV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The customer's address used for billing. # @return [Mindee::V1::Parsing::Standard::AddressField] attr_reader :billing_address diff --git a/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb b/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb index a2a02548..d9989b4e 100644 --- a/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb +++ b/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb @@ -9,6 +9,7 @@ module FinancialDocument # List of line item present on the document. class FinancialDocumentV1LineItem < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The item description. # @return [String] attr_reader :description @@ -51,7 +52,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:description] = format_for_display(@description) printable[:product_code] = format_for_display(@product_code) printable[:quantity] = @@ -70,7 +71,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:description] = format_for_display(@description, 36) printable[:product_code] = format_for_display(@product_code, nil) printable[:quantity] = diff --git a/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb b/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb index f2f8d6c2..b58fa178 100644 --- a/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb +++ b/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb @@ -10,6 +10,7 @@ module BankAccountDetails # Bank Account Details API version 1.0 document data. class BankAccountDetailsV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The name of the account holder as seen on the document. # @return [Mindee::V1::Parsing::Standard::StringField] attr_reader :account_holder_name diff --git a/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb b/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb index 18c614fb..2c1a2dca 100644 --- a/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb +++ b/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb @@ -10,6 +10,7 @@ module BankAccountDetails # Full extraction of BBAN, including: branch code, bank code, account and key. class BankAccountDetailsV2Bban < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The BBAN bank code outputted as a string. # @return [String] attr_reader :bban_bank_code @@ -36,7 +37,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:bban_bank_code] = format_for_display(@bban_bank_code) printable[:bban_branch_code] = format_for_display(@bban_branch_code) printable[:bban_key] = format_for_display(@bban_key) diff --git a/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb b/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb index 7310694d..0861defd 100644 --- a/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb +++ b/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb @@ -11,6 +11,7 @@ module BankAccountDetails # Bank Account Details API version 2.0 document data. class BankAccountDetailsV2Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # Full extraction of the account holders names. # @return [Mindee::V1::Parsing::Standard::StringField] attr_reader :account_holders_names diff --git a/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb b/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb index bcf8cbde..fe27d716 100644 --- a/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb +++ b/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb @@ -11,6 +11,7 @@ module BankStatement # Bank Statement API version 2.0 document data. class BankStatementV2Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The unique identifier for a customer's account in the bank's system. # @return [Mindee::V1::Parsing::Standard::StringField] attr_reader :account_number diff --git a/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb b/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb index 82702628..b131b888 100644 --- a/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb +++ b/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb @@ -10,6 +10,7 @@ module BankStatement # The list of values that represent the financial transactions recorded in a bank statement. class BankStatementV2Transaction < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The monetary amount of the transaction. # @return [Float] attr_reader :amount @@ -32,7 +33,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:amount] = @amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@amount) printable[:date] = format_for_display(@date) @@ -42,7 +43,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:amount] = @amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@amount) printable[:date] = format_for_display(@date, 10) diff --git a/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb b/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb index e8789eef..b151903d 100644 --- a/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb +++ b/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb @@ -10,6 +10,7 @@ module IdCard # Carte Nationale d'Identité API version 1.1 document data. class IdCardV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The name of the issuing authority. # @return [Mindee::V1::Parsing::Standard::StringField] attr_reader :authority diff --git a/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb b/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb index dfeb8d7e..0d622e2b 100644 --- a/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb +++ b/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb @@ -10,6 +10,7 @@ module IdCard # Carte Nationale d'Identité API version 2.0 document data. class IdCardV2Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The alternate name of the card holder. # @return [Mindee::V1::Parsing::Standard::StringField] attr_reader :alternate_name diff --git a/lib/mindee/v1/product/international_id/international_id_v2_document.rb b/lib/mindee/v1/product/international_id/international_id_v2_document.rb index 59b38572..16c664c0 100644 --- a/lib/mindee/v1/product/international_id/international_id_v2_document.rb +++ b/lib/mindee/v1/product/international_id/international_id_v2_document.rb @@ -9,6 +9,7 @@ module InternationalId # International ID API version 2.2 document data. class InternationalIdV2Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The physical address of the document holder. # @return [Mindee::V1::Parsing::Standard::StringField] attr_reader :address diff --git a/lib/mindee/v1/product/invoice/invoice_v4_document.rb b/lib/mindee/v1/product/invoice/invoice_v4_document.rb index d3d66a3e..cfd06c14 100644 --- a/lib/mindee/v1/product/invoice/invoice_v4_document.rb +++ b/lib/mindee/v1/product/invoice/invoice_v4_document.rb @@ -10,6 +10,7 @@ module Invoice # Invoice API version 4.11 document data. class InvoiceV4Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The customer billing address. # @return [Mindee::V1::Parsing::Standard::AddressField] attr_reader :billing_address diff --git a/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb b/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb index 76771459..2e5b8357 100644 --- a/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb +++ b/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb @@ -9,6 +9,7 @@ module Invoice # List of all the line items present on the invoice. class InvoiceV4LineItem < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The item description. # @return [String] attr_reader :description @@ -51,7 +52,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:description] = format_for_display(@description) printable[:product_code] = format_for_display(@product_code) printable[:quantity] = @@ -70,7 +71,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:description] = format_for_display(@description, 36) printable[:product_code] = format_for_display(@product_code, nil) printable[:quantity] = diff --git a/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb b/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb index 5dc09715..7619c0a5 100644 --- a/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb +++ b/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb @@ -10,6 +10,7 @@ module InvoiceSplitter # Invoice Splitter API version 1.4 document data. class InvoiceSplitterV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # List of page groups. Each group represents a single invoice within a multi-invoice document. # @return [Mindee::V1::Product::InvoiceSplitter::InvoiceSplitterV1InvoicePageGroups] attr_reader :invoice_page_groups diff --git a/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb b/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb index 6cf498c5..8c72438d 100644 --- a/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +++ b/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb @@ -9,6 +9,7 @@ module InvoiceSplitter # List of page groups. Each group represents a single invoice within a multi-invoice document. class InvoiceSplitterV1InvoicePageGroup < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # List of page indexes that belong to the same invoice (group). # @return [Array] attr_reader :page_indexes @@ -23,14 +24,14 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:page_indexes] = format_for_display(@page_indexes) printable end # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:page_indexes] = @page_indexes.join(', ') printable end diff --git a/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb b/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb index 0d61ad02..a5c23ea7 100644 --- a/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +++ b/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb @@ -9,6 +9,7 @@ module MultiReceiptsDetector # Multi Receipts Detector API version 1.1 document data. class MultiReceiptsDetectorV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # Positions of the receipts on the document. # @return [Array] attr_reader :receipts diff --git a/lib/mindee/v1/product/passport/passport_v1_document.rb b/lib/mindee/v1/product/passport/passport_v1_document.rb index 01b5e1b2..513a5190 100644 --- a/lib/mindee/v1/product/passport/passport_v1_document.rb +++ b/lib/mindee/v1/product/passport/passport_v1_document.rb @@ -9,6 +9,7 @@ module Passport # Passport API version 1.1 document data. class PassportV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The date of birth of the passport holder. # @return [Mindee::V1::Parsing::Standard::DateField] attr_reader :birth_date diff --git a/lib/mindee/v1/product/receipt/receipt_v5_document.rb b/lib/mindee/v1/product/receipt/receipt_v5_document.rb index 5770fe81..fff10708 100644 --- a/lib/mindee/v1/product/receipt/receipt_v5_document.rb +++ b/lib/mindee/v1/product/receipt/receipt_v5_document.rb @@ -10,6 +10,7 @@ module Receipt # Receipt API version 5.4 document data. class ReceiptV5Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The purchase category of the receipt. # @return [Mindee::V1::Parsing::Standard::ClassificationField] attr_reader :category diff --git a/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb b/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb index 7552ccb2..dd7964af 100644 --- a/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb +++ b/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb @@ -9,6 +9,7 @@ module Receipt # List of all line items on the receipt. class ReceiptV5LineItem < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The item description. # @return [String] attr_reader :description @@ -35,7 +36,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:description] = format_for_display(@description) printable[:quantity] = @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity) @@ -48,7 +49,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:description] = format_for_display(@description, 36) printable[:quantity] = @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity) diff --git a/lib/mindee/v1/product/resume/resume_v1_certificate.rb b/lib/mindee/v1/product/resume/resume_v1_certificate.rb index d3714cd8..c0af21f6 100644 --- a/lib/mindee/v1/product/resume/resume_v1_certificate.rb +++ b/lib/mindee/v1/product/resume/resume_v1_certificate.rb @@ -9,6 +9,7 @@ module Resume # The list of certificates obtained by the candidate. class ResumeV1Certificate < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The grade obtained for the certificate. # @return [String] attr_reader :grade @@ -35,7 +36,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:grade] = format_for_display(@grade) printable[:name] = format_for_display(@name) printable[:provider] = format_for_display(@provider) @@ -45,7 +46,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:grade] = format_for_display(@grade, 10) printable[:name] = format_for_display(@name, 30) printable[:provider] = format_for_display(@provider, 25) diff --git a/lib/mindee/v1/product/resume/resume_v1_document.rb b/lib/mindee/v1/product/resume/resume_v1_document.rb index c9d919a0..33050a9a 100644 --- a/lib/mindee/v1/product/resume/resume_v1_document.rb +++ b/lib/mindee/v1/product/resume/resume_v1_document.rb @@ -14,6 +14,7 @@ module Resume # Resume API version 1.2 document data. class ResumeV1Document < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Standard + # The location information of the candidate, including city, state, and country. # @return [Mindee::V1::Parsing::Standard::StringField] attr_reader :address diff --git a/lib/mindee/v1/product/resume/resume_v1_education.rb b/lib/mindee/v1/product/resume/resume_v1_education.rb index 28c8f348..adbd0640 100644 --- a/lib/mindee/v1/product/resume/resume_v1_education.rb +++ b/lib/mindee/v1/product/resume/resume_v1_education.rb @@ -9,6 +9,7 @@ module Resume # The list of the candidate's educational background. class ResumeV1Education < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The area of study or specialization. # @return [String] attr_reader :degree_domain @@ -47,7 +48,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:degree_domain] = format_for_display(@degree_domain) printable[:degree_type] = format_for_display(@degree_type) printable[:end_month] = format_for_display(@end_month) @@ -60,7 +61,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:degree_domain] = format_for_display(@degree_domain, 15) printable[:degree_type] = format_for_display(@degree_type, 25) printable[:end_month] = format_for_display(@end_month, nil) diff --git a/lib/mindee/v1/product/resume/resume_v1_language.rb b/lib/mindee/v1/product/resume/resume_v1_language.rb index 85b869be..0eb9b49f 100644 --- a/lib/mindee/v1/product/resume/resume_v1_language.rb +++ b/lib/mindee/v1/product/resume/resume_v1_language.rb @@ -9,6 +9,7 @@ module Resume # The list of languages that the candidate is proficient in. class ResumeV1Language < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The language's ISO 639 code. # @return [String] attr_reader :language @@ -27,7 +28,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:language] = format_for_display(@language) printable[:level] = format_for_display(@level) printable @@ -35,7 +36,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:language] = format_for_display(@language, nil) printable[:level] = format_for_display(@level, 20) printable diff --git a/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb b/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb index 9a1a3651..769c4afc 100644 --- a/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb +++ b/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb @@ -9,6 +9,7 @@ module Resume # The list of the candidate's professional experiences. class ResumeV1ProfessionalExperience < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The type of contract for the professional experience. # @return [String] attr_reader :contract_type @@ -55,7 +56,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:contract_type] = format_for_display(@contract_type) printable[:department] = format_for_display(@department) printable[:description] = format_for_display(@description) @@ -70,7 +71,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:contract_type] = format_for_display(@contract_type, 15) printable[:department] = format_for_display(@department, 10) printable[:description] = format_for_display(@description, 36) diff --git a/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb b/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb index 77bc93c6..c6f579a5 100644 --- a/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb +++ b/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb @@ -9,6 +9,7 @@ module Resume # The list of social network profiles of the candidate. class ResumeV1SocialNetworksUrl < Mindee::V1::Parsing::Standard::FeatureField include Mindee::V1::Parsing::Standard + # The name of the social network. # @return [String] attr_reader :name @@ -27,7 +28,7 @@ def initialize(prediction, page_id) # @return [Hash] def printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:name] = format_for_display(@name) printable[:url] = format_for_display(@url) printable @@ -35,7 +36,7 @@ def printable_values # @return [Hash] def table_printable_values - printable = {} + printable = {} # @type var printable: Hash[Symbol, String] printable[:name] = format_for_display(@name, 20) printable[:url] = format_for_display(@url, 50) printable diff --git a/lib/mindee/v1/product/universal/universal_document.rb b/lib/mindee/v1/product/universal/universal_document.rb index 4ac62760..5a470b6d 100644 --- a/lib/mindee/v1/product/universal/universal_document.rb +++ b/lib/mindee/v1/product/universal/universal_document.rb @@ -10,6 +10,7 @@ module Universal # Universal Document V1 prediction class UniversalDocument < Mindee::V1::Product::Universal::UniversalPrediction include Mindee::V1::Parsing::Standard + # @param raw_prediction [Hash] def initialize(raw_prediction) super diff --git a/lib/mindee/v1/product/universal/universal_prediction.rb b/lib/mindee/v1/product/universal/universal_prediction.rb index 057006be..c06fdec1 100644 --- a/lib/mindee/v1/product/universal/universal_prediction.rb +++ b/lib/mindee/v1/product/universal/universal_prediction.rb @@ -11,6 +11,7 @@ class UniversalPrediction < Mindee::V1::Parsing::Common::Prediction include Mindee::V1::Parsing::Common include Mindee::V1::Parsing::Standard include Mindee::V1::Parsing::Universal + # All value fields in the document # @return [Hash] attr_reader :fields diff --git a/lib/mindee/v2/file_operation/crop.rb b/lib/mindee/v2/file_operation/crop.rb index 63c6bf0c..7746f9e0 100644 --- a/lib/mindee/v2/file_operation/crop.rb +++ b/lib/mindee/v2/file_operation/crop.rb @@ -35,7 +35,7 @@ def self.extract_crops(input_source, crops) polygons[crop.location.page] << crop.location.polygon end - images = [] + images = [] # @type var images: Array[Image::ExtractedImage] polygons.each_with_index do |page_polygons, page_index| extracted = Mindee::Image::ImageExtractor.extract_multiple_images_from_source( input_source, page_index, page_polygons diff --git a/lib/mindee/v2/http/mindee_api.rb b/lib/mindee/v2/http/mindee_api.rb index a82c7600..9ccbed79 100644 --- a/lib/mindee/v2/http/mindee_api.rb +++ b/lib/mindee/v2/http/mindee_api.rb @@ -76,7 +76,7 @@ def req_get_search_models(model_name, model_type) url = "#{@settings.base_url}/v2/search/models" uri = URI(url) - query_params = {} + query_params = {} # @type var query_params: Hash[Symbol, String | nil] query_params[:name] = model_name if model_name query_params[:model_type] = model_type if model_type uri.query = URI.encode_www_form(query_params) unless query_params.empty? diff --git a/lib/mindee/v2/parsing/field/inference_fields.rb b/lib/mindee/v2/parsing/field/inference_fields.rb index 16aa7fc8..e7d0431f 100644 --- a/lib/mindee/v2/parsing/field/inference_fields.rb +++ b/lib/mindee/v2/parsing/field/inference_fields.rb @@ -73,7 +73,7 @@ def to_s(indent = 0) indent ||= @indent_level padding = ' ' * indent - lines = [] + lines = [] # @type var lines: Array[String] each do |field_key, field_value| line = "#{padding}:#{field_key}:" diff --git a/lib/mindee/v2/parsing/field/list_field.rb b/lib/mindee/v2/parsing/field/list_field.rb index 7d17a25e..9d6a7eff 100644 --- a/lib/mindee/v2/parsing/field/list_field.rb +++ b/lib/mindee/v2/parsing/field/list_field.rb @@ -32,7 +32,7 @@ def initialize(server_response, indent_level = 0) # @return [Array] Simple fields contained in the list. # @raise [TypeError] If the fields are not SimpleField. def simple_items - fields = [] + fields = [] # @type var fields: Array[SimpleField] @items.each do |item| raise TypeError, "Invalid field type detected: #{item.class}" unless item.is_a?(SimpleField) @@ -45,7 +45,7 @@ def simple_items # @return [Array] Object fields contained in the list. # @raise [TypeError] If the fields are not ObjectField. def object_items - fields = [] + fields = [] # @type var fields: Array[ObjectField] @items.each do |item| raise TypeError, "Invalid field type detected: #{item.class}" unless item.is_a?(ObjectField) diff --git a/lib/mindee/v2/parsing/field/object_field.rb b/lib/mindee/v2/parsing/field/object_field.rb index a0ce89a4..c9d7feaa 100644 --- a/lib/mindee/v2/parsing/field/object_field.rb +++ b/lib/mindee/v2/parsing/field/object_field.rb @@ -111,22 +111,25 @@ def get_object_field(key) # Get all simple fields. # @return [Hash] Simple fields contained in the object. def simple_fields - # @type var fields: Hash - @fields.select { |_, value| value.is_a?(SimpleField) } + # @type var result: Hash[String, SimpleField] + result = @fields.select { |_, value| value.is_a?(SimpleField) } # rubocop:disable Style/RedundantAssignment + result end # Get all list fields. # @return [Hash] List fields contained in the object. def list_fields - # @type var fields: Hash - @fields.select { |_, value| value.is_a?(ListField) } + # @type var result: Hash[String, ListField] + result = @fields.select { |_, value| value.is_a?(ListField) } # rubocop:disable Style/RedundantAssignment + result end # Get all object fields. # @return [Hash] Object fields contained in the object. def object_fields - # @type var fields: Hash - @fields.select { |_, value| value.is_a?(ObjectField) } + # @type var result: Hash[String, ObjectField] + result = @fields.select { |_, value| value.is_a?(ObjectField) } # rubocop:disable Style/RedundantAssignment + result end end end diff --git a/lib/mindee/v2/parsing/job.rb b/lib/mindee/v2/parsing/job.rb index 41b091c3..e3f726d8 100644 --- a/lib/mindee/v2/parsing/job.rb +++ b/lib/mindee/v2/parsing/job.rb @@ -81,7 +81,7 @@ def to_s '', 'Webhooks', '=========', - @webhooks.map(&:to_s).join("\n\n"), + @webhooks.join("\n\n"), ] end diff --git a/lib/mindee/v2/parsing/raw_text.rb b/lib/mindee/v2/parsing/raw_text.rb index 033d7f26..73841dcc 100644 --- a/lib/mindee/v2/parsing/raw_text.rb +++ b/lib/mindee/v2/parsing/raw_text.rb @@ -16,8 +16,10 @@ def initialize(server_response) end end + # String representation. + # @return [String] def to_s - "#{@pages.map(&:to_s).join("\n\n")}\n" + "#{@pages.join("\n\n")}\n" end end end diff --git a/lib/mindee/v2/parsing/raw_text_page.rb b/lib/mindee/v2/parsing/raw_text_page.rb index bf34ee42..625fca71 100644 --- a/lib/mindee/v2/parsing/raw_text_page.rb +++ b/lib/mindee/v2/parsing/raw_text_page.rb @@ -13,6 +13,8 @@ def initialize(server_response) @content = server_response['content'] end + # String representation. + # @return [String] def to_s @content end diff --git a/lib/mindee/v2/parsing/search/search_response.rb b/lib/mindee/v2/parsing/search/search_response.rb index 4ab081d2..9195a5e5 100644 --- a/lib/mindee/v2/parsing/search/search_response.rb +++ b/lib/mindee/v2/parsing/search/search_response.rb @@ -18,6 +18,8 @@ def initialize(server_response) @pagination_metadata = PaginationMetadata.new(server_response['pagination']) end + # String representation. + # @return [String] def to_s [ 'Models', diff --git a/lib/mindee/v2/product/classification/classification.rb b/lib/mindee/v2/product/classification/classification.rb index 0eff57a8..cfea179a 100644 --- a/lib/mindee/v2/product/classification/classification.rb +++ b/lib/mindee/v2/product/classification/classification.rb @@ -6,6 +6,7 @@ module Mindee module V2 module Product + # Classification module. module Classification # Classification product. class Classification < BaseProduct diff --git a/lib/mindee/v2/product/classification/params/classification_parameters.rb b/lib/mindee/v2/product/classification/params/classification_parameters.rb index 398b218e..2fcd57da 100644 --- a/lib/mindee/v2/product/classification/params/classification_parameters.rb +++ b/lib/mindee/v2/product/classification/params/classification_parameters.rb @@ -4,6 +4,7 @@ module Mindee module V2 module Product module Classification + # Classification parameters. module Params # Parameters accepted by the classification utility v2 endpoint. class ClassificationParameters < Mindee::Input::BaseParameters diff --git a/lib/mindee/v2/product/crop/crop.rb b/lib/mindee/v2/product/crop/crop.rb index 24211cfb..edcec424 100644 --- a/lib/mindee/v2/product/crop/crop.rb +++ b/lib/mindee/v2/product/crop/crop.rb @@ -6,6 +6,7 @@ module Mindee module V2 module Product + # Crop module. module Crop # Crop product. class Crop < BaseProduct diff --git a/lib/mindee/v2/product/crop/params/crop_parameters.rb b/lib/mindee/v2/product/crop/params/crop_parameters.rb index 712fe7ce..0b52c4ec 100644 --- a/lib/mindee/v2/product/crop/params/crop_parameters.rb +++ b/lib/mindee/v2/product/crop/params/crop_parameters.rb @@ -4,6 +4,7 @@ module Mindee module V2 module Product module Crop + # Crop parameters. module Params # Parameters accepted by the crop utility v2 endpoint. class CropParameters < Mindee::Input::BaseParameters diff --git a/lib/mindee/v2/product/extraction/extraction.rb b/lib/mindee/v2/product/extraction/extraction.rb index 289a78da..e318214f 100644 --- a/lib/mindee/v2/product/extraction/extraction.rb +++ b/lib/mindee/v2/product/extraction/extraction.rb @@ -6,6 +6,7 @@ module Mindee module V2 module Product + # Extraction module. module Extraction # Extraction product. # Note: currently a placeholder for the `Inference` class. diff --git a/lib/mindee/v2/product/extraction/params/data_schema.rb b/lib/mindee/v2/product/extraction/params/data_schema.rb index a984c42f..84b72cbf 100644 --- a/lib/mindee/v2/product/extraction/params/data_schema.rb +++ b/lib/mindee/v2/product/extraction/params/data_schema.rb @@ -6,6 +6,7 @@ module Mindee module V2 module Product module Extraction + # Extraction parameters. module Params # Modify the Data Schema. class DataSchema diff --git a/lib/mindee/v2/product/ocr/ocr.rb b/lib/mindee/v2/product/ocr/ocr.rb index 50ff9e80..9f81147c 100644 --- a/lib/mindee/v2/product/ocr/ocr.rb +++ b/lib/mindee/v2/product/ocr/ocr.rb @@ -6,12 +6,13 @@ module Mindee module V2 module Product - module Ocr - # Ocr product. - class Ocr < BaseProduct + # OCR module. + module OCR + # OCR product. + class OCR < BaseProduct @slug = 'ocr' - @params_type = Mindee::V2::Product::Ocr::Params::OcrParameters - @response_type = Mindee::V2::Product::Ocr::OcrResponse + @params_type = Mindee::V2::Product::OCR::Params::OCRParameters + @response_type = Mindee::V2::Product::OCR::OCRResponse end end end diff --git a/lib/mindee/v2/product/ocr/ocr_inference.rb b/lib/mindee/v2/product/ocr/ocr_inference.rb index 5daeb062..63937ba3 100644 --- a/lib/mindee/v2/product/ocr/ocr_inference.rb +++ b/lib/mindee/v2/product/ocr/ocr_inference.rb @@ -5,17 +5,17 @@ module Mindee module V2 module Product - module Ocr + module OCR # The inference result for an OCR utility request. - class OcrInference < Mindee::V2::Parsing::BaseInference - # @return [OcrResult] Parsed inference payload. + class OCRInference < Mindee::V2::Parsing::BaseInference + # @return [OCRResult] Parsed inference payload. attr_reader :result # @param server_response [Hash] Hash representation of the JSON returned by the service. def initialize(server_response) super - @result = OcrResult.new(server_response['result']) + @result = OCRResult.new(server_response['result']) end # String representation. diff --git a/lib/mindee/v2/product/ocr/ocr_page.rb b/lib/mindee/v2/product/ocr/ocr_page.rb index 5de39688..1da88823 100644 --- a/lib/mindee/v2/product/ocr/ocr_page.rb +++ b/lib/mindee/v2/product/ocr/ocr_page.rb @@ -5,17 +5,17 @@ module Mindee module V2 module Product - module Ocr + module OCR # OCR result for a single page. - class OcrPage - # @return [Array] List of words extracted from the document page. + class OCRPage + # @return [Array] List of words extracted from the document page. attr_reader :words # @return [String] Full text content extracted from the document page. attr_reader :content # @param server_response [Hash] Hash representation of the JSON returned by the service. def initialize(server_response) - @words = server_response['words'].map { |word| OcrWord.new(word) } + @words = server_response['words'].map { |word| OCRWord.new(word) } @content = server_response['content'] end @@ -23,7 +23,7 @@ def initialize(server_response) # @return [String] def to_s ocr_words = "\n" - ocr_words += @words.map(&:to_s).join("\n\n") if @words&.any? + ocr_words += @words.join("\n\n") if @words&.any? "OCR Words\n======#{ocr_words}\n\n:Content: #{@content}" end end diff --git a/lib/mindee/v2/product/ocr/ocr_response.rb b/lib/mindee/v2/product/ocr/ocr_response.rb index 3bac4d1e..0516e535 100644 --- a/lib/mindee/v2/product/ocr/ocr_response.rb +++ b/lib/mindee/v2/product/ocr/ocr_response.rb @@ -7,17 +7,17 @@ module Mindee module V2 module Product - module Ocr + module OCR # HTTP response wrapper that embeds a V2 Inference. - class OcrResponse < Mindee::V2::Parsing::BaseResponse - # @return [OcrInference] Parsed inference payload. + class OCRResponse < Mindee::V2::Parsing::BaseResponse + # @return [OCRInference] Parsed inference payload. attr_reader :inference # @param server_response [Hash] Hash parsed from the API JSON response. def initialize(server_response) super - @inference = OcrInference.new(server_response['inference']) + @inference = OCRInference.new(server_response['inference']) end # String representation. diff --git a/lib/mindee/v2/product/ocr/ocr_result.rb b/lib/mindee/v2/product/ocr/ocr_result.rb index 093a6ae9..c0eebb8e 100644 --- a/lib/mindee/v2/product/ocr/ocr_result.rb +++ b/lib/mindee/v2/product/ocr/ocr_result.rb @@ -5,17 +5,17 @@ module Mindee module V2 module Product - module Ocr + module OCR # Result of a ocr utility inference. - class OcrResult - # @return [Array] List of OCR results for each page in the document. + class OCRResult + # @return [Array] List of OCR results for each page in the document. attr_reader :pages # @param server_response [Hash] Hash representation of the JSON returned by the service. def initialize(server_response) @pages = if server_response.key?('pages') server_response['pages'].map do |pages| - OcrPage.new(pages) + OCRPage.new(pages) end end end diff --git a/lib/mindee/v2/product/ocr/ocr_word.rb b/lib/mindee/v2/product/ocr/ocr_word.rb index 489c7dc8..3e5cce3a 100644 --- a/lib/mindee/v2/product/ocr/ocr_word.rb +++ b/lib/mindee/v2/product/ocr/ocr_word.rb @@ -3,9 +3,9 @@ module Mindee module V2 module Product - module Ocr + module OCR # OCR result for a single word extracted from the document page. - class OcrWord + class OCRWord # @return [String] Text content of the word. attr_reader :content # @return [Mindee::Geometry::Polygon] Position information as a list of points in clockwise order. diff --git a/lib/mindee/v2/product/ocr/params/ocr_parameters.rb b/lib/mindee/v2/product/ocr/params/ocr_parameters.rb index ca068c83..97642315 100644 --- a/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +++ b/lib/mindee/v2/product/ocr/params/ocr_parameters.rb @@ -3,10 +3,11 @@ module Mindee module V2 module Product - module Ocr + module OCR + # OCR Parameters. module Params # Parameters accepted by the ocr utility v2 endpoint. - class OcrParameters < Mindee::Input::BaseParameters + class OCRParameters < Mindee::Input::BaseParameters # @return [String] Slug for the endpoint. def self.slug 'ocr' @@ -29,9 +30,9 @@ def initialize( # Loads the parameters from a Hash. # @param [Hash] params Parameters to provide as a hash. - # @return [OcrParameters] + # @return [OCRParameters] def self.from_hash(params: {}) - OcrParameters.new( + OCRParameters.new( params.fetch(:model_id), file_alias: params.fetch(:file_alias, nil), webhook_ids: params.fetch(:webhook_ids, nil), diff --git a/lib/mindee/v2/product/split/params/split_parameters.rb b/lib/mindee/v2/product/split/params/split_parameters.rb index 57dd79b8..f06b7fd0 100644 --- a/lib/mindee/v2/product/split/params/split_parameters.rb +++ b/lib/mindee/v2/product/split/params/split_parameters.rb @@ -3,7 +3,9 @@ module Mindee module V2 module Product + # Split module. module Split + # Split parameters. module Params # Parameters accepted by the split utility v2 endpoint. class SplitParameters < Mindee::Input::BaseParameters diff --git a/mindee.gemspec b/mindee.gemspec index e42488ec..090f3005 100644 --- a/mindee.gemspec +++ b/mindee.gemspec @@ -27,21 +27,21 @@ Gem::Specification.new do |spec| .reject { |f| f == 'products.rb' } spec.require_paths = ['lib'] - spec.required_ruby_version = Gem::Requirement.new('>= 3.0') + spec.required_ruby_version = Gem::Requirement.new('>= 3.2') - spec.add_dependency 'base64', '~> 0.1' + spec.add_dependency 'base64', '~> 0.3' spec.add_dependency 'bundle-audit', '~> 0.2.0' - spec.add_dependency 'marcel', '~> 1.0' + spec.add_dependency 'marcel', '~> 1.1' spec.add_dependency 'mini_magick', '>= 4', '< 6' spec.add_dependency 'origamindee', '~> 4.0' - spec.add_dependency 'pdf-reader', '~> 2.14' + spec.add_dependency 'pdf-reader', '~> 2.15' - spec.add_development_dependency 'openssl', '~> 3.3.2' + spec.add_development_dependency 'openssl', '~> 4.0' spec.add_development_dependency 'prism', '~> 1.3' - spec.add_development_dependency 'rake', '~> 13.2' - spec.add_development_dependency 'rbs', '~> 3.6' + spec.add_development_dependency 'rake', '~> 13.3' + spec.add_development_dependency 'rbs', '~> 3.10' spec.add_development_dependency 'rspec', '~> 3.13' - spec.add_development_dependency 'rubocop', '~> 1.76.0' - spec.add_development_dependency 'steep', '~> 1.7' + spec.add_development_dependency 'rubocop', '~> 1.86' + spec.add_development_dependency 'steep', '~> 1.10' spec.add_development_dependency 'yard', '~> 0.9' end diff --git a/sig/mindee/image/image_extractor.rbs b/sig/mindee/image/image_extractor.rbs index a92fe154..5f57c512 100644 --- a/sig/mindee/image/image_extractor.rbs +++ b/sig/mindee/image/image_extractor.rbs @@ -6,7 +6,7 @@ module Mindee def self.to_blob: () -> String def self.extract_multiple_images_from_source: (Input::Source::LocalInputSource, Integer, Array[Array[Geometry::Point] |Geometry::Polygon | Geometry::Quadrilateral]) -> Array[ExtractedImage] def self.extract_images_from_polygons: (Input::Source::LocalInputSource, StringIO | File, Integer, Array[Array[Geometry::Point] | Geometry::Polygon | Geometry::Quadrilateral]) -> Array[ExtractedImage] - def self.create_extracted_image: (StringIO | File, String, Integer, Integer) -> void + def self.create_extracted_image: (StringIO | File, String, Integer, Integer) -> ExtractedImage def self.load_input_source_pdf_page_as_stringio: (Input::Source::LocalInputSource, Integer) -> (StringIO | File) end end diff --git a/sig/mindee/pdf/extracted_pdf.rbs b/sig/mindee/pdf/extracted_pdf.rbs index 658400f9..937bd3d6 100644 --- a/sig/mindee/pdf/extracted_pdf.rbs +++ b/sig/mindee/pdf/extracted_pdf.rbs @@ -5,7 +5,7 @@ module Mindee attr_reader pdf_bytes: StringIO attr_reader filename: String - def initialize: (StringIO, String) -> void + def initialize: (StringIO | File, String) -> void def page_count: -> Integer diff --git a/sig/mindee/v1/extraction/multi_receipts_extractor.rbs b/sig/mindee/v1/extraction/multi_receipts_extractor.rbs index a0420736..ca269183 100644 --- a/sig/mindee/v1/extraction/multi_receipts_extractor.rbs +++ b/sig/mindee/v1/extraction/multi_receipts_extractor.rbs @@ -2,7 +2,7 @@ module Mindee module V1 module Extraction - def self.extract_receipts: (untyped, untyped) -> Array[untyped] + def self.extract_receipts: (Input::Source::LocalInputSource, Product::MultiReceiptsDetector::MultiReceiptsDetectorV1) -> Array[Image::ExtractedImage] end end end diff --git a/sig/mindee/v1/parsing/common/inference.rbs b/sig/mindee/v1/parsing/common/inference.rbs index a4f30247..c9255023 100644 --- a/sig/mindee/v1/parsing/common/inference.rbs +++ b/sig/mindee/v1/parsing/common/inference.rbs @@ -19,7 +19,6 @@ module Mindee attr_reader has_sync: bool attr_reader is_rotation_applied: bool attr_reader pages: Array[Page] - attr_reader prediction: Prediction attr_reader product: Product def initialize: (Hash[String | Symbol, untyped]) -> void diff --git a/sig/mindee/v1/parsing/common/page.rbs b/sig/mindee/v1/parsing/common/page.rbs index d64ce1b2..5e533830 100644 --- a/sig/mindee/v1/parsing/common/page.rbs +++ b/sig/mindee/v1/parsing/common/page.rbs @@ -7,7 +7,7 @@ module Mindee attr_reader extras: Extras::Extras attr_reader orientation: Common::Orientation attr_reader page_id: Integer - attr_reader prediction: Common::Prediction + attr_reader prediction: untyped # Voluntary to allow proper overloads, leave as-is. def initialize: (Hash[String | Symbol, untyped]) -> void diff --git a/sig/mindee/v1/parsing/standard/company_registration_field.rbs b/sig/mindee/v1/parsing/standard/company_registration_field.rbs index ad506a7d..325af88f 100644 --- a/sig/mindee/v1/parsing/standard/company_registration_field.rbs +++ b/sig/mindee/v1/parsing/standard/company_registration_field.rbs @@ -12,7 +12,7 @@ module Mindee def to_s: -> String - def printable_values: -> Hash[String, untyped] + def printable_values: -> Hash[Symbol, string] end end end diff --git a/sig/mindee/v1/parsing/standard/tax_field.rbs b/sig/mindee/v1/parsing/standard/tax_field.rbs index 0212172d..f3219fcb 100644 --- a/sig/mindee/v1/parsing/standard/tax_field.rbs +++ b/sig/mindee/v1/parsing/standard/tax_field.rbs @@ -15,7 +15,7 @@ module Mindee def to_s: -> String - def printable_values: -> Hash[untyped, String] + def printable_values: -> Hash[Symbol, String] def to_table_line: -> String end diff --git a/sig/mindee/v1/product/cropper/cropper_v1_page.rbs b/sig/mindee/v1/product/cropper/cropper_v1_page.rbs index f6477eee..e90ab9e9 100644 --- a/sig/mindee/v1/product/cropper/cropper_v1_page.rbs +++ b/sig/mindee/v1/product/cropper/cropper_v1_page.rbs @@ -8,8 +8,9 @@ module Mindee def initialize: (Hash[String | Symbol, untyped]) -> void end class CropperV1PagePrediction < CropperV1Document + attr_reader cropping: Array[Parsing::Standard::PositionField] + def initialize: (Hash[String | Symbol, untyped], Integer?) -> void - def cropping: -> Array[Parsing::Standard::PositionField] def to_s: -> String end end diff --git a/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs b/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs index ef8a1665..9ad61b17 100644 --- a/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs +++ b/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs @@ -21,7 +21,7 @@ module Mindee def unit_price: -> Float - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs b/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs index 144eec11..64d17ae0 100644 --- a/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +++ b/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs @@ -14,7 +14,7 @@ module Mindee def bban_number: -> String - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def to_s: -> String end diff --git a/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs b/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs index 9f1260e2..3097a8b2 100644 --- a/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs +++ b/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs @@ -12,7 +12,7 @@ module Mindee def description: -> String - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs b/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs index 1c100dbf..4962dc0c 100644 --- a/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs +++ b/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs @@ -21,7 +21,7 @@ module Mindee def unit_price: -> Float - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs b/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs index 2780b171..b1929140 100644 --- a/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs +++ b/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs @@ -7,7 +7,7 @@ module Mindee def page_indexes: -> Array[Integer] - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs b/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs index 4249ecc6..f6688fc0 100644 --- a/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +++ b/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs @@ -3,10 +3,11 @@ module Mindee module V1 module Product - module MultiReceiptsDetector - class MultiReceiptsDetectorV1 < Parsing::Common::Inference - def initialize: (Hash[String | Symbol, untyped]) -> void - end + module MultiReceiptsDetector + class MultiReceiptsDetectorV1 < Parsing::Common::Inference + attr_reader prediction: MultiReceiptsDetectorV1Document + def initialize: (Hash[String | Symbol, untyped]) -> void + end end end end diff --git a/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs b/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs index caaba3fc..5a768987 100644 --- a/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +++ b/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs @@ -5,8 +5,8 @@ module Mindee module Product module MultiReceiptsDetector class MultiReceiptsDetectorV1Document < Parsing::Common::Prediction + attr_reader receipts:(Array[Parsing::Standard::PositionField]) def initialize: (Hash[String | Symbol, untyped], Integer?) -> void - def receipts: -> (Array[Parsing::Standard::PositionField]) def to_s: -> String end end diff --git a/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs b/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs index a46c17e7..5cb4816e 100644 --- a/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs +++ b/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs @@ -13,7 +13,7 @@ module Mindee def unit_price: -> Float - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/resume/resume_v1_certificate.rbs b/sig/mindee/v1/product/resume/resume_v1_certificate.rbs index af0e5bc2..98b30446 100644 --- a/sig/mindee/v1/product/resume/resume_v1_certificate.rbs +++ b/sig/mindee/v1/product/resume/resume_v1_certificate.rbs @@ -13,7 +13,7 @@ module Mindee def year: -> String - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/resume/resume_v1_education.rbs b/sig/mindee/v1/product/resume/resume_v1_education.rbs index c2319c51..c533ebd0 100644 --- a/sig/mindee/v1/product/resume/resume_v1_education.rbs +++ b/sig/mindee/v1/product/resume/resume_v1_education.rbs @@ -19,7 +19,7 @@ module Mindee def start_year: -> String - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/resume/resume_v1_language.rbs b/sig/mindee/v1/product/resume/resume_v1_language.rbs index 19c9c1dc..224d6359 100644 --- a/sig/mindee/v1/product/resume/resume_v1_language.rbs +++ b/sig/mindee/v1/product/resume/resume_v1_language.rbs @@ -9,7 +9,7 @@ module Mindee def level: -> String - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs b/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs index 803dbfbf..61910b5c 100644 --- a/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs +++ b/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs @@ -23,7 +23,7 @@ module Mindee def start_year: -> String - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs b/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs index 9d230536..c0889b5e 100644 --- a/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs +++ b/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs @@ -9,7 +9,7 @@ module Mindee def url: -> String - def printable_values: -> Hash[String | Symbol, untyped] + def printable_values: -> Hash[Symbol, String] def table_printable_values: -> Hash[String | Symbol, untyped] diff --git a/sig/mindee/v2/product/ocr/ocr.rbs b/sig/mindee/v2/product/ocr/ocr.rbs index 9bbc96d0..2abff6d9 100644 --- a/sig/mindee/v2/product/ocr/ocr.rbs +++ b/sig/mindee/v2/product/ocr/ocr.rbs @@ -1,8 +1,8 @@ module Mindee module V2 module Product - module Ocr - class Ocr < BaseProduct + module OCR + class OCR < BaseProduct end end end diff --git a/sig/mindee/v2/product/ocr/ocr_inference.rbs b/sig/mindee/v2/product/ocr/ocr_inference.rbs index 029aa6fb..af289153 100644 --- a/sig/mindee/v2/product/ocr/ocr_inference.rbs +++ b/sig/mindee/v2/product/ocr/ocr_inference.rbs @@ -1,9 +1,9 @@ module Mindee module V2 module Product - module Ocr - class OcrInference - attr_reader result: OcrResult + module OCR + class OCRInference + attr_reader result: OCRResult def initialize: (Hash[String | Symbol, untyped]) -> void def to_s: -> String diff --git a/sig/mindee/v2/product/ocr/ocr_page.rbs b/sig/mindee/v2/product/ocr/ocr_page.rbs index 11cd9601..d9402975 100644 --- a/sig/mindee/v2/product/ocr/ocr_page.rbs +++ b/sig/mindee/v2/product/ocr/ocr_page.rbs @@ -1,9 +1,9 @@ module Mindee module V2 module Product - module Ocr - class OcrPage - attr_reader words: Array[OcrWord] + module OCR + class OCRPage + attr_reader words: Array[OCRWord] attr_reader content: String def initialize: (Hash[String | Symbol, untyped]) -> void diff --git a/sig/mindee/v2/product/ocr/ocr_response.rbs b/sig/mindee/v2/product/ocr/ocr_response.rbs index f9d96875..8f713b5b 100644 --- a/sig/mindee/v2/product/ocr/ocr_response.rbs +++ b/sig/mindee/v2/product/ocr/ocr_response.rbs @@ -3,18 +3,18 @@ module Mindee module V2 module Product - module Ocr - class OcrResponse < Parsing::BaseResponse[OcrInference] + module OCR + class OCRResponse < Parsing::BaseResponse[OCRInference] self.@slug: String - self.@_params_type: singleton(Params::OcrParameters) + self.@_params_type: singleton(Params::OCRParameters) - attr_reader inference: Mindee::V2::Product::Ocr::OcrInference + attr_reader inference: Mindee::V2::Product::OCR::OCRInference def initialize: (Hash[String | Symbol, untyped]) -> void - def _params_type: -> singleton(Params::OcrParameters) + def _params_type: -> singleton(Params::OCRParameters) def to_s: -> String - def self._params_type: () -> singleton(Params::OcrParameters) + def self._params_type: () -> singleton(Params::OCRParameters) def self.slug: () -> String end end diff --git a/sig/mindee/v2/product/ocr/ocr_result.rbs b/sig/mindee/v2/product/ocr/ocr_result.rbs index c35b0d73..dc7fcc42 100644 --- a/sig/mindee/v2/product/ocr/ocr_result.rbs +++ b/sig/mindee/v2/product/ocr/ocr_result.rbs @@ -1,9 +1,9 @@ module Mindee module V2 module Product - module Ocr - class OcrResult - attr_reader pages: Array[Mindee::V2::Product::Ocr::OcrPage] + module OCR + class OCRResult + attr_reader pages: Array[Mindee::V2::Product::OCR::OCRPage] def initialize: (Hash[String | Symbol, untyped]) -> void def to_s: -> String diff --git a/sig/mindee/v2/product/ocr/ocr_word.rbs b/sig/mindee/v2/product/ocr/ocr_word.rbs index 2d9967fb..0fba61dc 100644 --- a/sig/mindee/v2/product/ocr/ocr_word.rbs +++ b/sig/mindee/v2/product/ocr/ocr_word.rbs @@ -1,8 +1,8 @@ module Mindee module V2 module Product - module Ocr - class OcrWord + module OCR + class OCRWord attr_reader content: String attr_reader polygon: Geometry::Polygon diff --git a/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs b/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs index 73172082..a2df6f1a 100644 --- a/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +++ b/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs @@ -1,12 +1,12 @@ module Mindee module V2 module Product - module Ocr + module OCR module Params - class OcrParameters + class OCRParameters def self.slug: -> String - def self.from_hash: (params: Hash[String | Symbol, untyped]) -> OcrParameters + def self.from_hash: (params: Hash[String | Symbol, untyped]) -> OCRParameters def initialize: ( String, diff --git a/spec/image/image_extractor_spec.rb b/spec/image/image_extractor_spec.rb index 911ea007..98b2f5e7 100644 --- a/spec/image/image_extractor_spec.rb +++ b/spec/image/image_extractor_spec.rb @@ -6,6 +6,7 @@ describe Mindee::Image do include Mindee::Image + let(:barcode_path) do File.join(V1_DATA_DIR, 'products', 'barcode_reader', 'default_sample.jpg') end diff --git a/spec/openssl_crl_workaround.rb b/spec/openssl_crl_workaround.rb index 1f10c085..f4dff34d 100644 --- a/spec/openssl_crl_workaround.rb +++ b/spec/openssl_crl_workaround.rb @@ -3,7 +3,7 @@ require 'openssl' # Workaround for errors in SSL certificates validations on macOS. -params = OpenSSL::SSL::SSLContext::DEFAULT_PARAMS +params = OpenSSL::SSL::SSLContext::DEFAULT_PARAMS.dup params[:verify_mode] = OpenSSL::SSL::VERIFY_PEER diff --git a/spec/pdf/extracted_pdf_spec.rb b/spec/pdf/extracted_pdf_spec.rb index 5fb37bd4..9f8e4d99 100644 --- a/spec/pdf/extracted_pdf_spec.rb +++ b/spec/pdf/extracted_pdf_spec.rb @@ -17,62 +17,71 @@ describe '#initialize' do it 'initializes with valid pdf bytes and filename' do - pdf_stream = File.open(valid_pdf_path, 'r') - extracted_pdf = described_class.new(pdf_stream, 'invoice.pdf') - - expect(extracted_pdf.pdf_bytes).to eq(pdf_stream) - expect(extracted_pdf.filename).to eq('invoice.pdf') + File.open(valid_pdf_path, 'r') do |pdf_stream| + extracted_pdf = described_class.new(pdf_stream, 'invoice.pdf') + expect(extracted_pdf.pdf_bytes).to be_a(StringIO) + pdf_stream.rewind + extracted_pdf.pdf_bytes.rewind + expect(extracted_pdf.pdf_bytes.read).to eq(pdf_stream.read) + + expect(extracted_pdf.filename).to eq('invoice.pdf') + end end end describe '#page_count' do it 'raises an error for invalid PDF content' do - jpg_stream = File.open(invalid_pdf_path, 'r') - pdf_wrapper = described_class.new(jpg_stream, 'dummy.pdf') + File.open(invalid_pdf_path, 'r') do |jpg_stream| + pdf_wrapper = described_class.new(jpg_stream, 'dummy.pdf') - expect do - pdf_wrapper.page_count - end.to raise_error Mindee::Error::MindeePDFError, %r{Could not retrieve page count} + expect do + pdf_wrapper.page_count + end.to raise_error Mindee::Error::MindeePDFError, %r{Could not retrieve page count} + end end it 'returns the correct page count for a valid PDF' do - pdf_stream = File.open(valid_pdf_path, 'r') - allow(Mindee::PDF::PDFProcessor).to receive(:open_pdf).and_return(double(pages: [1, 2, 3])) - pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') + File.open(valid_pdf_path, 'r') do |pdf_stream| + allow(Mindee::PDF::PDFProcessor).to receive(:open_pdf).and_return(double(pages: [1, 2, 3])) + pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') - expect(pdf_wrapper.page_count).to eq(3) + expect(pdf_wrapper.page_count).to eq(3) + end end end describe '#write_to_file' do it 'writes the PDF bytes to a specified file path' do - pdf_stream = File.open(valid_pdf_path, 'r') - expected_pdf_content = pdf_stream.read - pdf_stream.rewind - pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') - - expect { pdf_wrapper.write_to_file(output_path) }.not_to raise_error - expect(File).to have_received(:binwrite).with(output_path, expected_pdf_content) + File.open(valid_pdf_path, 'r') do |pdf_stream| + expected_pdf_content = pdf_stream.read + pdf_stream.rewind + pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') + + expect { pdf_wrapper.write_to_file(output_path) }.not_to raise_error + expect(File).to have_received(:binwrite).with(output_path, expected_pdf_content) + end end it 'raises an error if the output path is a directory' do allow(File).to receive(:directory?).and_return(true) - pdf_stream = File.open(valid_pdf_path, 'r') - pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') + File.open(valid_pdf_path, 'r') do |pdf_stream| + pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') - expect do - pdf_wrapper.write_to_file(output_path) - end.to raise_error Mindee::Error::MindeePDFError, %r{Provided path is not a file} + expect do + pdf_wrapper.write_to_file(output_path) + end.to raise_error Mindee::Error::MindeePDFError, %r{Provided path is not a file} + end end it 'raises an error if the save path is invalid' do allow(File).to receive(:exist?).and_return(false) - pdf_stream = File.open(valid_pdf_path, 'r') - pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') + File.open(valid_pdf_path, 'r') do |pdf_stream| + pdf_wrapper = described_class.new(pdf_stream, 'invoice.pdf') - expect do - pdf_wrapper.write_to_file(output_path) - end.to raise_error Mindee::Error::MindeePDFError, %r{Invalid save path provided} + expect do + pdf_wrapper.write_to_file(output_path) + end.to raise_error Mindee::Error::MindeePDFError, %r{Invalid save path provided} + end end end diff --git a/spec/pdf/pdf_compressor_spec.rb b/spec/pdf/pdf_compressor_spec.rb index e9b50adb..12119ab4 100644 --- a/spec/pdf/pdf_compressor_spec.rb +++ b/spec/pdf/pdf_compressor_spec.rb @@ -45,16 +45,17 @@ 50 => "#{ROOT_DATA_DIR}/output/compressed_direct_50.pdf", 10 => "#{ROOT_DATA_DIR}/output/compressed_direct_10.pdf", } - pdf = File.open(input_file_path) - output_file_paths.each_pair do |key, value| - compressed_pdf = Mindee::PDF::PDFCompressor.compress_pdf(pdf, quality: key) - compressed_pdf.rewind - File.write(value, compressed_pdf.read) + File.open(input_file_path) do |pdf| + output_file_paths.each_pair do |key, value| + compressed_pdf = Mindee::PDF::PDFCompressor.compress_pdf(pdf, quality: key) + compressed_pdf.rewind + File.write(value, compressed_pdf.read) + end + expect(File.size(input_file_path)).to be > File.size(output_file_paths[85]) + expect(File.size(output_file_paths[75])).to be < File.size(output_file_paths[85]) + expect(File.size(output_file_paths[50])).to be < File.size(output_file_paths[75]) + expect(File.size(output_file_paths[10])).to be < File.size(output_file_paths[50]) end - expect(File.size(input_file_path)).to be > File.size(output_file_paths[85]) - expect(File.size(output_file_paths[75])).to be < File.size(output_file_paths[85]) - expect(File.size(output_file_paths[50])).to be < File.size(output_file_paths[75]) - expect(File.size(output_file_paths[10])).to be < File.size(output_file_paths[50]) end after(:each) do diff --git a/spec/pdf/pdf_processor_spec.rb b/spec/pdf/pdf_processor_spec.rb index e4e2f8f2..bf2b4c1a 100644 --- a/spec/pdf/pdf_processor_spec.rb +++ b/spec/pdf/pdf_processor_spec.rb @@ -15,29 +15,31 @@ def open_pdf(io_stream) filepath = File.join(FILE_TYPES_DIR, 'pdf/blank.pdf').freeze it 'Should grab the first page' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [0], - operation: :KEEP_ONLY, - on_min_pages: 0, - }) - new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) - new_pdf = open_pdf(new_stream) - expect(new_pdf.pages.size).to eq(1) + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [0], + operation: :KEEP_ONLY, + on_min_pages: 0, + }) + new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) + new_pdf = open_pdf(new_stream) + expect(new_pdf.pages.size).to eq(1) + end end it 'Should grab the last page' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [-1], - operation: :KEEP_ONLY, - on_min_pages: 0, - }) - new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) - new_pdf = open_pdf(new_stream) - expect(new_pdf.pages.size).to eq(1) + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [-1], + operation: :KEEP_ONLY, + on_min_pages: 0, + }) + new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) + new_pdf = open_pdf(new_stream) + expect(new_pdf.pages.size).to eq(1) + end end end @@ -45,81 +47,87 @@ def open_pdf(io_stream) filepath = File.join(FILE_TYPES_DIR, 'pdf/multipage.pdf').freeze it 'Should grab the first page' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [0], - operation: :KEEP_ONLY, - on_min_pages: 0, - }) - new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) - new_pdf = open_pdf(new_stream) - expect(new_pdf.pages.size).to eq(1) + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [0], + operation: :KEEP_ONLY, + on_min_pages: 0, + }) + new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) + new_pdf = open_pdf(new_stream) + expect(new_pdf.pages.size).to eq(1) + end end it 'Should grab the last page' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [-1], - operation: :KEEP_ONLY, - on_min_pages: 0, - }) - new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) - new_pdf = open_pdf(new_stream) - expect(new_pdf.pages.size).to eq(1) + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [-1], + operation: :KEEP_ONLY, + on_min_pages: 0, + }) + new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) + new_pdf = open_pdf(new_stream) + expect(new_pdf.pages.size).to eq(1) + end end it 'Should grab the first 2, and the last page' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [0, 1, -1], - operation: :KEEP_ONLY, - on_min_pages: 0, - }) - new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) - new_pdf = open_pdf(new_stream) - expect(new_pdf.pages.size).to eq(3) + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [0, 1, -1], + operation: :KEEP_ONLY, + on_min_pages: 0, + }) + new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) + new_pdf = open_pdf(new_stream) + expect(new_pdf.pages.size).to eq(3) + end end it 'Should grab the first 5 pages' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [0, 1, 2, 3, 4], - operation: :KEEP_ONLY, - on_min_pages: 0, - }) - new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) - new_pdf = open_pdf(new_stream) - expect(new_pdf.pages.size).to eq(5) + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [0, 1, 2, 3, 4], + operation: :KEEP_ONLY, + on_min_pages: 0, + }) + new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) + new_pdf = open_pdf(new_stream) + expect(new_pdf.pages.size).to eq(5) + end end it 'Should remove the first 3 pages' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [0, 1, 2], - operation: :REMOVE, - on_min_pages: 0, - }) - new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) - new_pdf = open_pdf(new_stream) - expect(new_pdf.pages.size).to eq(9) + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [0, 1, 2], + operation: :REMOVE, + on_min_pages: 0, + }) + new_stream = Mindee::PDF::PDFProcessor.parse(io_stream, options) + new_pdf = open_pdf(new_stream) + expect(new_pdf.pages.size).to eq(9) + end end it 'Should fail on invalid operation' do - io_stream = File.open(filepath, 'rb') - io_stream.seek(0) - options = Mindee::PageOptions.new(params: { - page_indexes: [1], - operation: :broken, - on_min_pages: 0, - }) - expect do - Mindee::PDF::PDFProcessor.parse(io_stream, options) - end.to raise_error ArgumentError + File.open(filepath, 'rb') do |io_stream| + io_stream.seek(0) + options = Mindee::PageOptions.new(params: { + page_indexes: [1], + operation: :broken, + on_min_pages: 0, + }) + expect do + Mindee::PDF::PDFProcessor.parse(io_stream, options) + end.to raise_error ArgumentError + end end end end diff --git a/spec/v1/client_spec.rb b/spec/v1/client_spec.rb index ef013663..8d11519c 100644 --- a/spec/v1/client_spec.rb +++ b/spec/v1/client_spec.rb @@ -16,9 +16,10 @@ end it 'should open PDF files from a file handle' do - file = File.open("#{V1_DATA_DIR}/products/invoices/invoice_10p.pdf", 'rb') - input_source = mindee_client.source_from_file(file, 'invoice_10p.pdf') - expect(input_source).to respond_to(:read_contents) + File.open("#{V1_DATA_DIR}/products/invoices/invoice_10p.pdf", 'rb') do |file| + input_source = mindee_client.source_from_file(file, 'invoice_10p.pdf') + expect(input_source).to respond_to(:read_contents) + end end it 'should open PDF files from raw bytes' do @@ -41,9 +42,10 @@ end it 'should open JPG files from a file handle' do - file = File.open("#{FILE_TYPES_DIR}/receipt.jpg", 'rb') - input_source = mindee_client.source_from_file(file, 'receipt.jpg') - expect(input_source).to respond_to(:read_contents) + File.open("#{FILE_TYPES_DIR}/receipt.jpg", 'rb') do |file| + input_source = mindee_client.source_from_file(file, 'receipt.jpg') + expect(input_source).to respond_to(:read_contents) + end end it 'should open JPG files from raw bytes' do diff --git a/spec/v1/http/error_handler_integration.rb b/spec/v1/http/error_handler_integration.rb index a494ceb1..edec057e 100644 --- a/spec/v1/http/error_handler_integration.rb +++ b/spec/v1/http/error_handler_integration.rb @@ -8,22 +8,24 @@ context 'An HTTP call' do it 'should make an invalid API sync parse call raising an exception' do mindee_client1 = Mindee::V1::Client.new(api_key: 'invalid-api-key') - file = File.open("#{FILE_TYPES_DIR}/receipt.jpg", 'rb') - input_source = mindee_client1.source_from_file(file, 'receipt.jpg') - doc_class = Mindee::V1::Product::Receipt::ReceiptV5 - expect do - mindee_client1.parse(input_source, doc_class, options: { all_words: false, close_file: true }) - end.to raise_error Mindee::Error::MindeeHTTPClientError + File.open("#{FILE_TYPES_DIR}/receipt.jpg", 'rb') do |file| + input_source = mindee_client1.source_from_file(file, 'receipt.jpg') + doc_class = Mindee::V1::Product::Receipt::ReceiptV5 + expect do + mindee_client1.parse(input_source, doc_class, options: { all_words: false, close_file: true }) + end.to raise_error Mindee::Error::MindeeHTTPClientError + end end it 'should make an invalid API async enqueue call raising an exception' do mindee_client1 = Mindee::V1::Client.new(api_key: 'invalid-api-key') - file = File.open("#{V1_DATA_DIR}/products/invoice_splitter/default_sample.pdf", 'rb') - input_source = mindee_client1.source_from_file(file, 'default_sample.pdf') - doc_class = Mindee::V1::Product::Invoice::InvoiceV4 - expect do - mindee_client1.enqueue(input_source, doc_class) - end.to raise_error Mindee::Error::MindeeHTTPClientError + File.open("#{V1_DATA_DIR}/products/invoice_splitter/default_sample.pdf", 'rb') do |file| + input_source = mindee_client1.source_from_file(file, 'default_sample.pdf') + doc_class = Mindee::V1::Product::Invoice::InvoiceV4 + expect do + mindee_client1.enqueue(input_source, doc_class) + end.to raise_error Mindee::Error::MindeeHTTPClientError + end end it 'should make an invalid API async parse call raising an exception' do diff --git a/spec/v1/ocr_spec.rb b/spec/v1/ocr_spec.rb index 5075c8e8..be8c3cc2 100644 --- a/spec/v1/ocr_spec.rb +++ b/spec/v1/ocr_spec.rb @@ -7,6 +7,7 @@ describe Mindee::V1::Parsing::Common do include Mindee::V1::Parsing::Common + context 'An OCR extraction' do json_data = load_json(V1_OCR_DIR, 'complete.json') it 'should extract ocr data from a document' do diff --git a/spec/v2/product/ocr/ocr_integration.rb b/spec/v2/product/ocr/ocr_integration.rb index 90f726a9..3d525a27 100644 --- a/spec/v2/product/ocr/ocr_integration.rb +++ b/spec/v2/product/ocr/ocr_integration.rb @@ -3,7 +3,7 @@ require 'mindee' require 'mindee/v2/product' -describe Mindee::V2::Product::Ocr, :integration, :v2 do +describe Mindee::V2::Product::OCR, :integration, :v2 do let(:ocr_model_id) do ENV.fetch('MINDEE_V2_SE_TESTS_OCR_MODEL_ID') end @@ -20,15 +20,15 @@ params = { model_id: ocr_model_id } response = v2_client.enqueue_and_get_result( - Mindee::V2::Product::Ocr::Ocr, + Mindee::V2::Product::OCR::OCR, input_source, params ) expect(response.inference).not_to be_nil expect(response.inference.file.name).to eq('default_sample.jpg') - expect(response.inference).to be_a(Mindee::V2::Product::Ocr::OcrInference) - expect(response.inference.result).to be_a(Mindee::V2::Product::Ocr::OcrResult) + expect(response.inference).to be_a(Mindee::V2::Product::OCR::OCRInference) + expect(response.inference.result).to be_a(Mindee::V2::Product::OCR::OCRResult) expect(response.inference.result.pages.size).to eq(1) expect(response.inference.result.pages[0].words.size).to be > 5 end diff --git a/spec/v2/product/ocr/ocr_spec.rb b/spec/v2/product/ocr/ocr_spec.rb index 039a0585..ff5add24 100644 --- a/spec/v2/product/ocr/ocr_spec.rb +++ b/spec/v2/product/ocr/ocr_spec.rb @@ -3,16 +3,16 @@ require 'json' require 'mindee' -describe Mindee::V2::Product::Ocr::Ocr, :v2 do +describe Mindee::V2::Product::OCR::OCR, :v2 do let(:ocr_data_dir) { File.join(V2_PRODUCT_DATA_DIR, 'ocr') } it 'parses a single page OCR response properly' do json_path = File.join(ocr_data_dir, 'ocr_single.json') json_sample = JSON.parse(File.read(json_path)) - response = Mindee::V2::Product::Ocr::OcrResponse.new(json_sample) + response = Mindee::V2::Product::OCR::OCRResponse.new(json_sample) - expect(response.inference).to be_a(Mindee::V2::Product::Ocr::OcrInference) + expect(response.inference).to be_a(Mindee::V2::Product::OCR::OCRInference) expect(response.inference.result.pages).not_to be_empty expect(response.inference.result.pages.size).to eq(1) @@ -66,11 +66,11 @@ json_path = File.join(ocr_data_dir, 'ocr_multiple.json') json_sample = JSON.parse(File.read(json_path)) - response = Mindee::V2::Product::Ocr::OcrResponse.new(json_sample) + response = Mindee::V2::Product::OCR::OCRResponse.new(json_sample) - expect(response.inference).to be_a(Mindee::V2::Product::Ocr::OcrInference) - expect(response.inference.result).to be_a(Mindee::V2::Product::Ocr::OcrResult) - expect(response.inference.result.pages[0]).to be_a(Mindee::V2::Product::Ocr::OcrPage) + expect(response.inference).to be_a(Mindee::V2::Product::OCR::OCRInference) + expect(response.inference.result).to be_a(Mindee::V2::Product::OCR::OCRResult) + expect(response.inference.result.pages[0]).to be_a(Mindee::V2::Product::OCR::OCRPage) expect(response.inference.result.pages.size).to eq(3) page_zero_words = response.inference.result.pages[0].words