mindee-lite 5.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +24 -0
  3. data/.gitattributes +14 -0
  4. data/.gitignore +76 -0
  5. data/.gitmodules +3 -0
  6. data/.pre-commit-config.yaml +36 -0
  7. data/.rubocop.yml +49 -0
  8. data/.yardopts +4 -0
  9. data/CHANGELOG.md +515 -0
  10. data/CODE_OF_CONDUCT.md +129 -0
  11. data/CONTRIBUTING.md +107 -0
  12. data/Gemfile +14 -0
  13. data/LICENSE +21 -0
  14. data/README.md +42 -0
  15. data/Rakefile +40 -0
  16. data/Steepfile +30 -0
  17. data/bin/console +14 -0
  18. data/bin/mindee.rb +30 -0
  19. data/bin/v1/parser.rb +153 -0
  20. data/bin/v1/products.rb +88 -0
  21. data/bin/v2/parser.rb +235 -0
  22. data/bin/v2/products.rb +34 -0
  23. data/docs/code_samples/bank_account_details_v1.txt +24 -0
  24. data/docs/code_samples/bank_account_details_v2.txt +24 -0
  25. data/docs/code_samples/bank_statement_fr_v2_async.txt +24 -0
  26. data/docs/code_samples/barcode_reader_v1.txt +24 -0
  27. data/docs/code_samples/cropper_v1.txt +21 -0
  28. data/docs/code_samples/default.txt +30 -0
  29. data/docs/code_samples/default_async.txt +29 -0
  30. data/docs/code_samples/expense_receipts_v5.txt +25 -0
  31. data/docs/code_samples/expense_receipts_v5_async.txt +24 -0
  32. data/docs/code_samples/financial_document_v1.txt +25 -0
  33. data/docs/code_samples/financial_document_v1_async.txt +24 -0
  34. data/docs/code_samples/idcard_fr_v1.txt +24 -0
  35. data/docs/code_samples/idcard_fr_v2.txt +24 -0
  36. data/docs/code_samples/international_id_v2_async.txt +24 -0
  37. data/docs/code_samples/invoice_splitter_v1_async.txt +24 -0
  38. data/docs/code_samples/invoices_v4.txt +25 -0
  39. data/docs/code_samples/invoices_v4_async.txt +24 -0
  40. data/docs/code_samples/multi_receipts_detector_v1.txt +24 -0
  41. data/docs/code_samples/passport_v1.txt +24 -0
  42. data/docs/code_samples/resume_v1_async.txt +24 -0
  43. data/docs/code_samples/v2_classification.txt +30 -0
  44. data/docs/code_samples/v2_crop.txt +30 -0
  45. data/docs/code_samples/v2_extraction.txt +42 -0
  46. data/docs/code_samples/v2_extraction_webhook.txt +45 -0
  47. data/docs/code_samples/v2_ocr.txt +30 -0
  48. data/docs/code_samples/v2_split.txt +30 -0
  49. data/docs/code_samples/workflow_execution.txt +28 -0
  50. data/docs/code_samples/workflow_polling.txt +35 -0
  51. data/examples/auto_invoice_splitter_extraction.rb +48 -0
  52. data/examples/auto_multi_receipts_detector_extraction.rb +30 -0
  53. data/lib/mindee/dependency.rb +29 -0
  54. data/lib/mindee/error/mindee_error.rb +17 -0
  55. data/lib/mindee/error/mindee_http_error.rb +36 -0
  56. data/lib/mindee/error/mindee_http_error_v2.rb +45 -0
  57. data/lib/mindee/error/mindee_http_unknown_error_v2.rb +18 -0
  58. data/lib/mindee/error/mindee_input_error.rb +30 -0
  59. data/lib/mindee/error.rb +6 -0
  60. data/lib/mindee/geometry/min_max.rb +23 -0
  61. data/lib/mindee/geometry/point.rb +41 -0
  62. data/lib/mindee/geometry/polygon.rb +37 -0
  63. data/lib/mindee/geometry/quadrilateral.rb +50 -0
  64. data/lib/mindee/geometry/utils.rb +88 -0
  65. data/lib/mindee/geometry.rb +7 -0
  66. data/lib/mindee/http/.rubocop.yml +7 -0
  67. data/lib/mindee/http/http_error_handler.rb +106 -0
  68. data/lib/mindee/http/response_validation.rb +81 -0
  69. data/lib/mindee/http.rb +3 -0
  70. data/lib/mindee/image/extracted_image.rb +89 -0
  71. data/lib/mindee/image/image_compressor.rb +29 -0
  72. data/lib/mindee/image/image_extractor.rb +118 -0
  73. data/lib/mindee/image/image_utils.rb +165 -0
  74. data/lib/mindee/image.rb +6 -0
  75. data/lib/mindee/input/base_parameters.rb +149 -0
  76. data/lib/mindee/input/local_response.rb +80 -0
  77. data/lib/mindee/input/polling_options.rb +26 -0
  78. data/lib/mindee/input/sources/base64_input_source.rb +31 -0
  79. data/lib/mindee/input/sources/bytes_input_source.rb +21 -0
  80. data/lib/mindee/input/sources/file_input_source.rb +20 -0
  81. data/lib/mindee/input/sources/local_input_source.rb +216 -0
  82. data/lib/mindee/input/sources/path_input_source.rb +20 -0
  83. data/lib/mindee/input/sources/url_input_source.rb +130 -0
  84. data/lib/mindee/input/sources.rb +8 -0
  85. data/lib/mindee/input.rb +4 -0
  86. data/lib/mindee/logging/logger.rb +24 -0
  87. data/lib/mindee/logging.rb +3 -0
  88. data/lib/mindee/page_options.rb +24 -0
  89. data/lib/mindee/pdf/extracted_pdf.rb +70 -0
  90. data/lib/mindee/pdf/pdf_compressor.rb +121 -0
  91. data/lib/mindee/pdf/pdf_extractor.rb +121 -0
  92. data/lib/mindee/pdf/pdf_processor.rb +91 -0
  93. data/lib/mindee/pdf/pdf_tools.rb +201 -0
  94. data/lib/mindee/pdf.rb +7 -0
  95. data/lib/mindee/v1/client.rb +490 -0
  96. data/lib/mindee/v1/extraction/multi_receipts_extractor.rb +32 -0
  97. data/lib/mindee/v1/extraction.rb +3 -0
  98. data/lib/mindee/v1/http/.rubocop.yml +7 -0
  99. data/lib/mindee/v1/http/endpoint.rb +221 -0
  100. data/lib/mindee/v1/http/workflow_endpoint.rb +93 -0
  101. data/lib/mindee/v1/http.rb +4 -0
  102. data/lib/mindee/v1/parsing/common/api_request.rb +38 -0
  103. data/lib/mindee/v1/parsing/common/api_response.rb +63 -0
  104. data/lib/mindee/v1/parsing/common/document.rb +86 -0
  105. data/lib/mindee/v1/parsing/common/execution.rb +78 -0
  106. data/lib/mindee/v1/parsing/common/execution_file.rb +26 -0
  107. data/lib/mindee/v1/parsing/common/execution_priority.rb +38 -0
  108. data/lib/mindee/v1/parsing/common/extras/cropper_extra.rb +32 -0
  109. data/lib/mindee/v1/parsing/common/extras/extras.rb +62 -0
  110. data/lib/mindee/v1/parsing/common/extras/full_text_ocr_extra.rb +35 -0
  111. data/lib/mindee/v1/parsing/common/extras/rag_extra.rb +28 -0
  112. data/lib/mindee/v1/parsing/common/extras.rb +6 -0
  113. data/lib/mindee/v1/parsing/common/inference.rb +69 -0
  114. data/lib/mindee/v1/parsing/common/job.rb +48 -0
  115. data/lib/mindee/v1/parsing/common/ocr/mvision_v1.rb +52 -0
  116. data/lib/mindee/v1/parsing/common/ocr/ocr.rb +180 -0
  117. data/lib/mindee/v1/parsing/common/ocr.rb +3 -0
  118. data/lib/mindee/v1/parsing/common/orientation.rb +28 -0
  119. data/lib/mindee/v1/parsing/common/page.rb +49 -0
  120. data/lib/mindee/v1/parsing/common/prediction.rb +19 -0
  121. data/lib/mindee/v1/parsing/common/product.rb +26 -0
  122. data/lib/mindee/v1/parsing/common/workflow_response.rb +30 -0
  123. data/lib/mindee/v1/parsing/common.rb +15 -0
  124. data/lib/mindee/v1/parsing/standard/abstract_field.rb +74 -0
  125. data/lib/mindee/v1/parsing/standard/address_field.rb +51 -0
  126. data/lib/mindee/v1/parsing/standard/amount_field.rb +28 -0
  127. data/lib/mindee/v1/parsing/standard/base_field.rb +30 -0
  128. data/lib/mindee/v1/parsing/standard/boolean_field.rb +29 -0
  129. data/lib/mindee/v1/parsing/standard/classification_field.rb +18 -0
  130. data/lib/mindee/v1/parsing/standard/company_registration_field.rb +45 -0
  131. data/lib/mindee/v1/parsing/standard/date_field.rb +40 -0
  132. data/lib/mindee/v1/parsing/standard/feature_field.rb +26 -0
  133. data/lib/mindee/v1/parsing/standard/locale_field.rb +52 -0
  134. data/lib/mindee/v1/parsing/standard/payment_details_field.rb +44 -0
  135. data/lib/mindee/v1/parsing/standard/position_field.rb +61 -0
  136. data/lib/mindee/v1/parsing/standard/string_field.rb +26 -0
  137. data/lib/mindee/v1/parsing/standard/tax_field.rb +110 -0
  138. data/lib/mindee/v1/parsing/standard.rb +15 -0
  139. data/lib/mindee/v1/parsing/universal/universal_list_field.rb +60 -0
  140. data/lib/mindee/v1/parsing/universal/universal_object_field.rb +123 -0
  141. data/lib/mindee/v1/parsing/universal.rb +4 -0
  142. data/lib/mindee/v1/parsing.rb +5 -0
  143. data/lib/mindee/v1/product/.rubocop.yml +12 -0
  144. data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1.rb +47 -0
  145. data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb +47 -0
  146. data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rb +38 -0
  147. data/lib/mindee/v1/product/cropper/cropper_v1.rb +47 -0
  148. data/lib/mindee/v1/product/cropper/cropper_v1_document.rb +15 -0
  149. data/lib/mindee/v1/product/cropper/cropper_v1_page.rb +55 -0
  150. data/lib/mindee/v1/product/financial_document/financial_document_v1.rb +47 -0
  151. data/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb +329 -0
  152. data/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb +124 -0
  153. data/lib/mindee/v1/product/financial_document/financial_document_v1_line_items.rb +64 -0
  154. data/lib/mindee/v1/product/financial_document/financial_document_v1_page.rb +38 -0
  155. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rb +49 -0
  156. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb +49 -0
  157. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rb +40 -0
  158. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rb +49 -0
  159. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb +63 -0
  160. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb +60 -0
  161. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rb +40 -0
  162. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2.rb +49 -0
  163. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb +169 -0
  164. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rb +40 -0
  165. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb +78 -0
  166. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rb +56 -0
  167. data/lib/mindee/v1/product/fr/id_card/id_card_v1.rb +49 -0
  168. data/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb +106 -0
  169. data/lib/mindee/v1/product/fr/id_card/id_card_v1_page.rb +57 -0
  170. data/lib/mindee/v1/product/fr/id_card/id_card_v2.rb +49 -0
  171. data/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb +143 -0
  172. data/lib/mindee/v1/product/fr/id_card/id_card_v2_page.rb +65 -0
  173. data/lib/mindee/v1/product/international_id/international_id_v2.rb +47 -0
  174. data/lib/mindee/v1/product/international_id/international_id_v2_document.rb +164 -0
  175. data/lib/mindee/v1/product/international_id/international_id_v2_page.rb +38 -0
  176. data/lib/mindee/v1/product/invoice/invoice_v4.rb +47 -0
  177. data/lib/mindee/v1/product/invoice/invoice_v4_document.rb +300 -0
  178. data/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb +124 -0
  179. data/lib/mindee/v1/product/invoice/invoice_v4_line_items.rb +64 -0
  180. data/lib/mindee/v1/product/invoice/invoice_v4_page.rb +38 -0
  181. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rb +47 -0
  182. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb +66 -0
  183. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +58 -0
  184. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rb +50 -0
  185. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rb +38 -0
  186. data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rb +47 -0
  187. data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +38 -0
  188. data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +38 -0
  189. data/lib/mindee/v1/product/passport/passport_v1.rb +47 -0
  190. data/lib/mindee/v1/product/passport/passport_v1_document.rb +112 -0
  191. data/lib/mindee/v1/product/passport/passport_v1_page.rb +38 -0
  192. data/lib/mindee/v1/product/receipt/receipt_v5.rb +47 -0
  193. data/lib/mindee/v1/product/receipt/receipt_v5_document.rb +187 -0
  194. data/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb +88 -0
  195. data/lib/mindee/v1/product/receipt/receipt_v5_line_items.rb +56 -0
  196. data/lib/mindee/v1/product/receipt/receipt_v5_page.rb +38 -0
  197. data/lib/mindee/v1/product/resume/resume_v1.rb +47 -0
  198. data/lib/mindee/v1/product/resume/resume_v1_certificate.rb +82 -0
  199. data/lib/mindee/v1/product/resume/resume_v1_certificates.rb +60 -0
  200. data/lib/mindee/v1/product/resume/resume_v1_document.rb +340 -0
  201. data/lib/mindee/v1/product/resume/resume_v1_education.rb +106 -0
  202. data/lib/mindee/v1/product/resume/resume_v1_educations.rb +66 -0
  203. data/lib/mindee/v1/product/resume/resume_v1_language.rb +66 -0
  204. data/lib/mindee/v1/product/resume/resume_v1_languages.rb +56 -0
  205. data/lib/mindee/v1/product/resume/resume_v1_page.rb +38 -0
  206. data/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb +122 -0
  207. data/lib/mindee/v1/product/resume/resume_v1_professional_experiences.rb +70 -0
  208. data/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb +66 -0
  209. data/lib/mindee/v1/product/resume/resume_v1_social_networks_urls.rb +56 -0
  210. data/lib/mindee/v1/product/universal/universal.rb +48 -0
  211. data/lib/mindee/v1/product/universal/universal_document.rb +35 -0
  212. data/lib/mindee/v1/product/universal/universal_page.rb +54 -0
  213. data/lib/mindee/v1/product/universal/universal_prediction.rb +128 -0
  214. data/lib/mindee/v1/product.rb +18 -0
  215. data/lib/mindee/v1.rb +7 -0
  216. data/lib/mindee/v2/client.rb +132 -0
  217. data/lib/mindee/v2/file_operation/crop.rb +51 -0
  218. data/lib/mindee/v2/file_operation/crop_files.rb +25 -0
  219. data/lib/mindee/v2/file_operation/split.rb +37 -0
  220. data/lib/mindee/v2/file_operation/split_files.rb +25 -0
  221. data/lib/mindee/v2/file_operation.rb +6 -0
  222. data/lib/mindee/v2/http/.rubocop.yml +7 -0
  223. data/lib/mindee/v2/http/api_v2_settings.rb +65 -0
  224. data/lib/mindee/v2/http/mindee_api_v2.rb +230 -0
  225. data/lib/mindee/v2/http.rb +4 -0
  226. data/lib/mindee/v2/parsing/base_inference.rb +44 -0
  227. data/lib/mindee/v2/parsing/base_response.rb +15 -0
  228. data/lib/mindee/v2/parsing/common_response.rb +20 -0
  229. data/lib/mindee/v2/parsing/error_item.rb +21 -0
  230. data/lib/mindee/v2/parsing/error_response.rb +51 -0
  231. data/lib/mindee/v2/parsing/field/base_field.rb +63 -0
  232. data/lib/mindee/v2/parsing/field/field_confidence.rb +128 -0
  233. data/lib/mindee/v2/parsing/field/field_location.rb +33 -0
  234. data/lib/mindee/v2/parsing/field/inference_fields.rb +105 -0
  235. data/lib/mindee/v2/parsing/field/list_field.rb +79 -0
  236. data/lib/mindee/v2/parsing/field/object_field.rb +138 -0
  237. data/lib/mindee/v2/parsing/field/simple_field.rb +60 -0
  238. data/lib/mindee/v2/parsing/field.rb +9 -0
  239. data/lib/mindee/v2/parsing/inference_active_options.rb +67 -0
  240. data/lib/mindee/v2/parsing/inference_file.rb +38 -0
  241. data/lib/mindee/v2/parsing/inference_job.rb +25 -0
  242. data/lib/mindee/v2/parsing/inference_model.rb +30 -0
  243. data/lib/mindee/v2/parsing/job.rb +93 -0
  244. data/lib/mindee/v2/parsing/job_response.rb +30 -0
  245. data/lib/mindee/v2/parsing/job_webhook.rb +59 -0
  246. data/lib/mindee/v2/parsing/rag_metadata.rb +17 -0
  247. data/lib/mindee/v2/parsing/raw_text.rb +27 -0
  248. data/lib/mindee/v2/parsing/raw_text_page.rb +24 -0
  249. data/lib/mindee/v2/parsing/search/pagination_metadata.rb +44 -0
  250. data/lib/mindee/v2/parsing/search/search_model.rb +38 -0
  251. data/lib/mindee/v2/parsing/search/search_models.rb +34 -0
  252. data/lib/mindee/v2/parsing/search/search_response.rb +38 -0
  253. data/lib/mindee/v2/parsing/search.rb +6 -0
  254. data/lib/mindee/v2/parsing.rb +16 -0
  255. data/lib/mindee/v2/product/base_product.rb +28 -0
  256. data/lib/mindee/v2/product/classification/classification.rb +20 -0
  257. data/lib/mindee/v2/product/classification/classification_classifier.rb +25 -0
  258. data/lib/mindee/v2/product/classification/classification_inference.rb +35 -0
  259. data/lib/mindee/v2/product/classification/classification_response.rb +32 -0
  260. data/lib/mindee/v2/product/classification/classification_result.rb +27 -0
  261. data/lib/mindee/v2/product/classification/params/classification_parameters.rb +47 -0
  262. data/lib/mindee/v2/product/crop/crop.rb +20 -0
  263. data/lib/mindee/v2/product/crop/crop_inference.rb +34 -0
  264. data/lib/mindee/v2/product/crop/crop_item.rb +39 -0
  265. data/lib/mindee/v2/product/crop/crop_response.rb +40 -0
  266. data/lib/mindee/v2/product/crop/crop_result.rb +34 -0
  267. data/lib/mindee/v2/product/crop/params/crop_parameters.rb +47 -0
  268. data/lib/mindee/v2/product/extraction/extraction.rb +21 -0
  269. data/lib/mindee/v2/product/extraction/extraction_inference.rb +40 -0
  270. data/lib/mindee/v2/product/extraction/extraction_response.rb +32 -0
  271. data/lib/mindee/v2/product/extraction/extraction_result.rb +44 -0
  272. data/lib/mindee/v2/product/extraction/params/data_schema.rb +51 -0
  273. data/lib/mindee/v2/product/extraction/params/data_schema_field.rb +69 -0
  274. data/lib/mindee/v2/product/extraction/params/data_schema_replace.rb +39 -0
  275. data/lib/mindee/v2/product/extraction/params/extraction_parameters.rb +125 -0
  276. data/lib/mindee/v2/product/ocr/ocr.rb +20 -0
  277. data/lib/mindee/v2/product/ocr/ocr_inference.rb +34 -0
  278. data/lib/mindee/v2/product/ocr/ocr_page.rb +33 -0
  279. data/lib/mindee/v2/product/ocr/ocr_response.rb +32 -0
  280. data/lib/mindee/v2/product/ocr/ocr_result.rb +34 -0
  281. data/lib/mindee/v2/product/ocr/ocr_word.rb +29 -0
  282. data/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +47 -0
  283. data/lib/mindee/v2/product/split/params/split_parameters.rb +48 -0
  284. data/lib/mindee/v2/product/split/split.rb +19 -0
  285. data/lib/mindee/v2/product/split/split_inference.rb +34 -0
  286. data/lib/mindee/v2/product/split/split_range.rb +38 -0
  287. data/lib/mindee/v2/product/split/split_response.rb +40 -0
  288. data/lib/mindee/v2/product/split/split_result.rb +34 -0
  289. data/lib/mindee/v2/product.rb +7 -0
  290. data/lib/mindee/v2.rb +7 -0
  291. data/lib/mindee/version.rb +26 -0
  292. data/lib/mindee.rb +135 -0
  293. data/mindee-lite.gemspec +36 -0
  294. data/mindee.gemspec +44 -0
  295. data/sig/custom/marcel.rbs +3 -0
  296. data/sig/custom/mini_magick.rbs +31 -0
  297. data/sig/custom/net_http.rbs +43 -0
  298. data/sig/custom/origami.rbs +59 -0
  299. data/sig/mindee/dependency.rbs +13 -0
  300. data/sig/mindee/error/mindee_error.rbs +13 -0
  301. data/sig/mindee/error/mindee_http_error.rbs +17 -0
  302. data/sig/mindee/error/mindee_http_error_v2.rbs +15 -0
  303. data/sig/mindee/error/mindee_http_unknown_error_v2.rbs +9 -0
  304. data/sig/mindee/error/mindee_input_error.rbs +18 -0
  305. data/sig/mindee/geometry/min_max.rbs +11 -0
  306. data/sig/mindee/geometry/point.rbs +14 -0
  307. data/sig/mindee/geometry/polygon.rbs +12 -0
  308. data/sig/mindee/geometry/quadrilateral.rbs +15 -0
  309. data/sig/mindee/geometry/utils.rbs +13 -0
  310. data/sig/mindee/http/http_error_handler.rbs +15 -0
  311. data/sig/mindee/http/response_validation.rbs +11 -0
  312. data/sig/mindee/image/extracted_image.rbs +21 -0
  313. data/sig/mindee/image/image_compressor.rbs +8 -0
  314. data/sig/mindee/image/image_extractor.rbs +13 -0
  315. data/sig/mindee/image/image_utils.rbs +19 -0
  316. data/sig/mindee/input/base_parameters.rbs +35 -0
  317. data/sig/mindee/input/local_response.rbs +14 -0
  318. data/sig/mindee/input/polling_options.rbs +12 -0
  319. data/sig/mindee/input/sources/base64_input_source.rbs +11 -0
  320. data/sig/mindee/input/sources/bytes_input_source.rbs +10 -0
  321. data/sig/mindee/input/sources/file_input_source.rbs +10 -0
  322. data/sig/mindee/input/sources/local_input_source.rbs +30 -0
  323. data/sig/mindee/input/sources/path_input_source.rbs +10 -0
  324. data/sig/mindee/input/sources/url_input_source.rbs +20 -0
  325. data/sig/mindee/logging/logger.rbs +11 -0
  326. data/sig/mindee/page_options.rbs +11 -0
  327. data/sig/mindee/pdf/extracted_pdf.rbs +17 -0
  328. data/sig/mindee/pdf/pdf_compressor.rbs +15 -0
  329. data/sig/mindee/pdf/pdf_extractor.rbs +19 -0
  330. data/sig/mindee/pdf/pdf_processor.rbs +12 -0
  331. data/sig/mindee/pdf/pdf_tools.rbs +31 -0
  332. data/sig/mindee/v1/client.rbs +84 -0
  333. data/sig/mindee/v1/extraction/multi_receipts_extractor.rbs +8 -0
  334. data/sig/mindee/v1/http/endpoint.rbs +41 -0
  335. data/sig/mindee/v1/http/workflow_endpoint.rbs +22 -0
  336. data/sig/mindee/v1/parsing/common/api_request.rbs +22 -0
  337. data/sig/mindee/v1/parsing/common/api_response.rbs +31 -0
  338. data/sig/mindee/v1/parsing/common/document.rbs +32 -0
  339. data/sig/mindee/v1/parsing/common/execution.rbs +26 -0
  340. data/sig/mindee/v1/parsing/common/execution_file.rbs +16 -0
  341. data/sig/mindee/v1/parsing/common/execution_priority.rbs +16 -0
  342. data/sig/mindee/v1/parsing/common/extras/cropper_extra.rbs +18 -0
  343. data/sig/mindee/v1/parsing/common/extras/extras.rbs +24 -0
  344. data/sig/mindee/v1/parsing/common/extras/full_text_ocr_extra.rbs +22 -0
  345. data/sig/mindee/v1/parsing/common/extras/rag_extra.rbs +19 -0
  346. data/sig/mindee/v1/parsing/common/inference.rbs +31 -0
  347. data/sig/mindee/v1/parsing/common/job.rbs +24 -0
  348. data/sig/mindee/v1/parsing/common/ocr/mvision_v1.rbs +20 -0
  349. data/sig/mindee/v1/parsing/common/ocr/ocr.rbs +56 -0
  350. data/sig/mindee/v1/parsing/common/orientation.rbs +15 -0
  351. data/sig/mindee/v1/parsing/common/page.rbs +19 -0
  352. data/sig/mindee/v1/parsing/common/prediction.rbs +14 -0
  353. data/sig/mindee/v1/parsing/common/product.rbs +16 -0
  354. data/sig/mindee/v1/parsing/common/workflow_response.rbs +22 -0
  355. data/sig/mindee/v1/parsing/standard/abstract_field.rbs +30 -0
  356. data/sig/mindee/v1/parsing/standard/address_field.rbs +28 -0
  357. data/sig/mindee/v1/parsing/standard/amount_field.rbs +16 -0
  358. data/sig/mindee/v1/parsing/standard/base_field.rbs +16 -0
  359. data/sig/mindee/v1/parsing/standard/boolean_field.rbs +16 -0
  360. data/sig/mindee/v1/parsing/standard/classification_field.rbs +12 -0
  361. data/sig/mindee/v1/parsing/standard/company_registration_field.rbs +20 -0
  362. data/sig/mindee/v1/parsing/standard/date_field.rbs +20 -0
  363. data/sig/mindee/v1/parsing/standard/feature_field.rbs +12 -0
  364. data/sig/mindee/v1/parsing/standard/locale_field.rbs +24 -0
  365. data/sig/mindee/v1/parsing/standard/payment_details_field.rbs +19 -0
  366. data/sig/mindee/v1/parsing/standard/position_field.rbs +26 -0
  367. data/sig/mindee/v1/parsing/standard/string_field.rbs +16 -0
  368. data/sig/mindee/v1/parsing/standard/tax_field.rbs +33 -0
  369. data/sig/mindee/v1/parsing/universal/universal_list_field.rbs +21 -0
  370. data/sig/mindee/v1/parsing/universal/universal_object_field.rbs +38 -0
  371. data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1.rbs +13 -0
  372. data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rbs +16 -0
  373. data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rbs +17 -0
  374. data/sig/mindee/v1/product/cropper/cropper_v1.rbs +13 -0
  375. data/sig/mindee/v1/product/cropper/cropper_v1_document.rbs +14 -0
  376. data/sig/mindee/v1/product/cropper/cropper_v1_page.rbs +19 -0
  377. data/sig/mindee/v1/product/financial_document/financial_document_v1.rbs +13 -0
  378. data/sig/mindee/v1/product/financial_document/financial_document_v1_document.rbs +49 -0
  379. data/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs +35 -0
  380. data/sig/mindee/v1/product/financial_document/financial_document_v1_line_items.rbs +15 -0
  381. data/sig/mindee/v1/product/financial_document/financial_document_v1_page.rbs +17 -0
  382. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rbs +15 -0
  383. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rbs +19 -0
  384. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rbs +19 -0
  385. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rbs +15 -0
  386. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +25 -0
  387. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rbs +20 -0
  388. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rbs +19 -0
  389. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2.rbs +15 -0
  390. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rbs +31 -0
  391. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rbs +19 -0
  392. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs +27 -0
  393. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rbs +17 -0
  394. data/sig/mindee/v1/product/fr/id_card/id_card_v1.rbs +15 -0
  395. data/sig/mindee/v1/product/fr/id_card/id_card_v1_document.rbs +26 -0
  396. data/sig/mindee/v1/product/fr/id_card/id_card_v1_page.rbs +20 -0
  397. data/sig/mindee/v1/product/fr/id_card/id_card_v2.rbs +15 -0
  398. data/sig/mindee/v1/product/fr/id_card/id_card_v2_document.rbs +31 -0
  399. data/sig/mindee/v1/product/fr/id_card/id_card_v2_page.rbs +21 -0
  400. data/sig/mindee/v1/product/international_id/international_id_v2.rbs +13 -0
  401. data/sig/mindee/v1/product/international_id/international_id_v2_document.rbs +31 -0
  402. data/sig/mindee/v1/product/international_id/international_id_v2_page.rbs +17 -0
  403. data/sig/mindee/v1/product/invoice/invoice_v4.rbs +13 -0
  404. data/sig/mindee/v1/product/invoice/invoice_v4_document.rbs +45 -0
  405. data/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs +35 -0
  406. data/sig/mindee/v1/product/invoice/invoice_v4_line_items.rbs +15 -0
  407. data/sig/mindee/v1/product/invoice/invoice_v4_page.rbs +17 -0
  408. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rbs +13 -0
  409. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rbs +17 -0
  410. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs +21 -0
  411. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rbs +15 -0
  412. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rbs +17 -0
  413. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +14 -0
  414. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +15 -0
  415. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rbs +17 -0
  416. data/sig/mindee/v1/product/passport/passport_v1.rbs +13 -0
  417. data/sig/mindee/v1/product/passport/passport_v1_document.rbs +25 -0
  418. data/sig/mindee/v1/product/passport/passport_v1_page.rbs +17 -0
  419. data/sig/mindee/v1/product/receipt/receipt_v5.rbs +13 -0
  420. data/sig/mindee/v1/product/receipt/receipt_v5_document.rbs +33 -0
  421. data/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs +27 -0
  422. data/sig/mindee/v1/product/receipt/receipt_v5_line_items.rbs +15 -0
  423. data/sig/mindee/v1/product/receipt/receipt_v5_page.rbs +17 -0
  424. data/sig/mindee/v1/product/resume/resume_v1.rbs +13 -0
  425. data/sig/mindee/v1/product/resume/resume_v1_certificate.rbs +27 -0
  426. data/sig/mindee/v1/product/resume/resume_v1_certificates.rbs +17 -0
  427. data/sig/mindee/v1/product/resume/resume_v1_document.rbs +69 -0
  428. data/sig/mindee/v1/product/resume/resume_v1_education.rbs +33 -0
  429. data/sig/mindee/v1/product/resume/resume_v1_educations.rbs +17 -0
  430. data/sig/mindee/v1/product/resume/resume_v1_language.rbs +23 -0
  431. data/sig/mindee/v1/product/resume/resume_v1_languages.rbs +17 -0
  432. data/sig/mindee/v1/product/resume/resume_v1_page.rbs +19 -0
  433. data/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs +37 -0
  434. data/sig/mindee/v1/product/resume/resume_v1_professional_experiences.rbs +17 -0
  435. data/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs +23 -0
  436. data/sig/mindee/v1/product/resume/resume_v1_social_networks_urls.rbs +17 -0
  437. data/sig/mindee/v1/product/universal/universal.rbs +16 -0
  438. data/sig/mindee/v1/product/universal/universal_document.rbs +12 -0
  439. data/sig/mindee/v1/product/universal/universal_page.rbs +18 -0
  440. data/sig/mindee/v1/product/universal/universal_prediction.rbs +30 -0
  441. data/sig/mindee/v2/client.rbs +29 -0
  442. data/sig/mindee/v2/file_operation/crop.rbs +10 -0
  443. data/sig/mindee/v2/file_operation/crop_files.rbs +9 -0
  444. data/sig/mindee/v2/file_operation/split.rbs +11 -0
  445. data/sig/mindee/v2/file_operation/split_files.rbs +9 -0
  446. data/sig/mindee/v2/http/api_v2_settings.rbs +27 -0
  447. data/sig/mindee/v2/http/mindee_api_v2.rbs +52 -0
  448. data/sig/mindee/v2/parsing/base_inference.rbs +18 -0
  449. data/sig/mindee/v2/parsing/base_response.rbs +11 -0
  450. data/sig/mindee/v2/parsing/common_response.rbs +12 -0
  451. data/sig/mindee/v2/parsing/error_item.rbs +13 -0
  452. data/sig/mindee/v2/parsing/error_response.rbs +20 -0
  453. data/sig/mindee/v2/parsing/field/base_field.rbs +17 -0
  454. data/sig/mindee/v2/parsing/field/field_confidence.rbs +30 -0
  455. data/sig/mindee/v2/parsing/field/field_location.rbs +16 -0
  456. data/sig/mindee/v2/parsing/field/inference_fields.rbs +20 -0
  457. data/sig/mindee/v2/parsing/field/list_field.rbs +23 -0
  458. data/sig/mindee/v2/parsing/field/object_field.rbs +27 -0
  459. data/sig/mindee/v2/parsing/field/simple_field.rbs +16 -0
  460. data/sig/mindee/v2/parsing/inference_active_options.rbs +26 -0
  461. data/sig/mindee/v2/parsing/inference_file.rbs +17 -0
  462. data/sig/mindee/v2/parsing/inference_job.rbs +13 -0
  463. data/sig/mindee/v2/parsing/inference_model.rbs +12 -0
  464. data/sig/mindee/v2/parsing/job.rbs +24 -0
  465. data/sig/mindee/v2/parsing/job_response.rbs +14 -0
  466. data/sig/mindee/v2/parsing/job_webhook.rbs +19 -0
  467. data/sig/mindee/v2/parsing/rag_metadata.rbs +13 -0
  468. data/sig/mindee/v2/parsing/raw_text.rbs +12 -0
  469. data/sig/mindee/v2/parsing/raw_text_page.rbs +11 -0
  470. data/sig/mindee/v2/parsing/search/pagination_metadata.rbs +20 -0
  471. data/sig/mindee/v2/parsing/search/search_model.rbs +19 -0
  472. data/sig/mindee/v2/parsing/search/search_response.rbs +17 -0
  473. data/sig/mindee/v2/parsing/search_models.rbs +14 -0
  474. data/sig/mindee/v2/product/base_product.rbs +19 -0
  475. data/sig/mindee/v2/product/classification/classification.rbs +10 -0
  476. data/sig/mindee/v2/product/classification/classification_classifier.rbs +15 -0
  477. data/sig/mindee/v2/product/classification/classification_inference.rbs +15 -0
  478. data/sig/mindee/v2/product/classification/classification_response.rbs +23 -0
  479. data/sig/mindee/v2/product/classification/classification_result.rbs +15 -0
  480. data/sig/mindee/v2/product/classification/params/classification_parameters/classification_parameters.rbs +23 -0
  481. data/sig/mindee/v2/product/crop/crop.rbs +10 -0
  482. data/sig/mindee/v2/product/crop/crop_inference.rbs +14 -0
  483. data/sig/mindee/v2/product/crop/crop_item.rbs +18 -0
  484. data/sig/mindee/v2/product/crop/crop_response.rbs +25 -0
  485. data/sig/mindee/v2/product/crop/crop_result.rbs +14 -0
  486. data/sig/mindee/v2/product/crop/params/crop_parameters/crop_parameters.rbs +23 -0
  487. data/sig/mindee/v2/product/extraction/extraction.rbs +15 -0
  488. data/sig/mindee/v2/product/extraction/extraction_inference.rbs +19 -0
  489. data/sig/mindee/v2/product/extraction/extraction_response.rbs +24 -0
  490. data/sig/mindee/v2/product/extraction/extraction_result.rbs +18 -0
  491. data/sig/mindee/v2/product/extraction/params/data_schema.rbs +21 -0
  492. data/sig/mindee/v2/product/extraction/params/data_schema_field.rbs +29 -0
  493. data/sig/mindee/v2/product/extraction/params/data_schema_replace.rbs +21 -0
  494. data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +38 -0
  495. data/sig/mindee/v2/product/ocr/ocr.rbs +10 -0
  496. data/sig/mindee/v2/product/ocr/ocr_inference.rbs +14 -0
  497. data/sig/mindee/v2/product/ocr/ocr_page.rbs +15 -0
  498. data/sig/mindee/v2/product/ocr/ocr_response.rbs +23 -0
  499. data/sig/mindee/v2/product/ocr/ocr_result.rbs +14 -0
  500. data/sig/mindee/v2/product/ocr/ocr_word.rbs +15 -0
  501. data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +24 -0
  502. data/sig/mindee/v2/product/split/params/split_parameters/split_parameters.rbs +23 -0
  503. data/sig/mindee/v2/product/split/split.rbs +10 -0
  504. data/sig/mindee/v2/product/split/split_inference.rbs +14 -0
  505. data/sig/mindee/v2/product/split/split_range.rbs +18 -0
  506. data/sig/mindee/v2/product/split/split_response.rbs +25 -0
  507. data/sig/mindee/v2/product/split/split_result.rbs +14 -0
  508. data/sig/mindee/version.rbs +6 -0
  509. data/sig/mindee.rbs +62 -0
  510. metadata +600 -0
@@ -0,0 +1,340 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'resume_v1_social_networks_urls'
5
+ require_relative 'resume_v1_languages'
6
+ require_relative 'resume_v1_educations'
7
+ require_relative 'resume_v1_professional_experiences'
8
+ require_relative 'resume_v1_certificates'
9
+
10
+ module Mindee
11
+ module V1
12
+ module Product
13
+ module Resume
14
+ # Resume API version 1.2 document data.
15
+ class ResumeV1Document < Mindee::V1::Parsing::Common::Prediction
16
+ include Mindee::V1::Parsing::Standard
17
+
18
+ # The location information of the candidate, including city, state, and country.
19
+ # @return [Mindee::V1::Parsing::Standard::StringField]
20
+ attr_reader :address
21
+ # The list of certificates obtained by the candidate.
22
+ # @return [Mindee::V1::Product::Resume::ResumeV1Certificates]
23
+ attr_reader :certificates
24
+ # The ISO 639 code of the language in which the document is written.
25
+ # @return [Mindee::V1::Parsing::Standard::StringField]
26
+ attr_reader :document_language
27
+ # The type of the document sent.
28
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
29
+ attr_reader :document_type
30
+ # The list of the candidate's educational background.
31
+ # @return [Mindee::V1::Product::Resume::ResumeV1Educations]
32
+ attr_reader :education
33
+ # The email address of the candidate.
34
+ # @return [Mindee::V1::Parsing::Standard::StringField]
35
+ attr_reader :email_address
36
+ # The candidate's first or given names.
37
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
38
+ attr_reader :given_names
39
+ # The list of the candidate's technical abilities and knowledge.
40
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
41
+ attr_reader :hard_skills
42
+ # The position that the candidate is applying for.
43
+ # @return [Mindee::V1::Parsing::Standard::StringField]
44
+ attr_reader :job_applied
45
+ # The list of languages that the candidate is proficient in.
46
+ # @return [Mindee::V1::Product::Resume::ResumeV1Languages]
47
+ attr_reader :languages
48
+ # The ISO 3166 code for the country of citizenship of the candidate.
49
+ # @return [Mindee::V1::Parsing::Standard::StringField]
50
+ attr_reader :nationality
51
+ # The phone number of the candidate.
52
+ # @return [Mindee::V1::Parsing::Standard::StringField]
53
+ attr_reader :phone_number
54
+ # The candidate's current profession.
55
+ # @return [Mindee::V1::Parsing::Standard::StringField]
56
+ attr_reader :profession
57
+ # The list of the candidate's professional experiences.
58
+ # @return [Mindee::V1::Product::Resume::ResumeV1ProfessionalExperiences]
59
+ attr_reader :professional_experiences
60
+ # The list of social network profiles of the candidate.
61
+ # @return [Mindee::V1::Product::Resume::ResumeV1SocialNetworksUrls]
62
+ attr_reader :social_networks_urls
63
+ # The list of the candidate's interpersonal and communication abilities.
64
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
65
+ attr_reader :soft_skills
66
+ # The candidate's last names.
67
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
68
+ attr_reader :surnames
69
+
70
+ # @param prediction [Hash]
71
+ # @param page_id [Integer, nil]
72
+ def initialize(prediction, page_id)
73
+ super
74
+ @address = Parsing::Standard::StringField.new(
75
+ prediction['address'],
76
+ page_id
77
+ )
78
+ @certificates = Product::Resume::ResumeV1Certificates.new(prediction['certificates'], page_id)
79
+ @document_language = Parsing::Standard::StringField.new(
80
+ prediction['document_language'],
81
+ page_id
82
+ )
83
+ @document_type = Parsing::Standard::ClassificationField.new(
84
+ prediction['document_type'],
85
+ page_id
86
+ )
87
+ @education = Product::Resume::ResumeV1Educations.new(prediction['education'], page_id)
88
+ @email_address = Parsing::Standard::StringField.new(
89
+ prediction['email_address'],
90
+ page_id
91
+ )
92
+ @given_names = [] # : Array[Parsing::Standard::StringField]
93
+ prediction['given_names'].each do |item|
94
+ @given_names.push(Parsing::Standard::StringField.new(item, page_id))
95
+ end
96
+ @hard_skills = [] # : Array[Parsing::Standard::StringField]
97
+ prediction['hard_skills'].each do |item|
98
+ @hard_skills.push(Parsing::Standard::StringField.new(item, page_id))
99
+ end
100
+ @job_applied = Parsing::Standard::StringField.new(
101
+ prediction['job_applied'],
102
+ page_id
103
+ )
104
+ @languages = Product::Resume::ResumeV1Languages.new(prediction['languages'], page_id)
105
+ @nationality = Parsing::Standard::StringField.new(
106
+ prediction['nationality'],
107
+ page_id
108
+ )
109
+ @phone_number = Parsing::Standard::StringField.new(
110
+ prediction['phone_number'],
111
+ page_id
112
+ )
113
+ @profession = Parsing::Standard::StringField.new(
114
+ prediction['profession'],
115
+ page_id
116
+ )
117
+ @professional_experiences = Product::Resume::ResumeV1ProfessionalExperiences.new(
118
+ prediction['professional_experiences'], page_id
119
+ )
120
+ @social_networks_urls = Product::Resume::ResumeV1SocialNetworksUrls.new(
121
+ prediction['social_networks_urls'], page_id
122
+ )
123
+ @soft_skills = [] # : Array[Parsing::Standard::StringField]
124
+ prediction['soft_skills'].each do |item|
125
+ @soft_skills.push(Parsing::Standard::StringField.new(item, page_id))
126
+ end
127
+ @surnames = [] # : Array[Parsing::Standard::StringField]
128
+ prediction['surnames'].each do |item|
129
+ @surnames.push(Parsing::Standard::StringField.new(item, page_id))
130
+ end
131
+ end
132
+
133
+ # @return [String]
134
+ def to_s
135
+ given_names = @given_names.join("\n #{' ' * 13}")
136
+ surnames = @surnames.join("\n #{' ' * 10}")
137
+ social_networks_urls = social_networks_urls_to_s
138
+ languages = languages_to_s
139
+ hard_skills = @hard_skills.join("\n #{' ' * 13}")
140
+ soft_skills = @soft_skills.join("\n #{' ' * 13}")
141
+ education = education_to_s
142
+ professional_experiences = professional_experiences_to_s
143
+ certificates = certificates_to_s
144
+ out_str = String.new
145
+ out_str << "\n:Document Language: #{@document_language}".rstrip
146
+ out_str << "\n:Document Type: #{@document_type}".rstrip
147
+ out_str << "\n:Given Names: #{given_names}".rstrip
148
+ out_str << "\n:Surnames: #{surnames}".rstrip
149
+ out_str << "\n:Nationality: #{@nationality}".rstrip
150
+ out_str << "\n:Email Address: #{@email_address}".rstrip
151
+ out_str << "\n:Phone Number: #{@phone_number}".rstrip
152
+ out_str << "\n:Address: #{@address}".rstrip
153
+ out_str << "\n:Social Networks:"
154
+ out_str << social_networks_urls
155
+ out_str << "\n:Profession: #{@profession}".rstrip
156
+ out_str << "\n:Job Applied: #{@job_applied}".rstrip
157
+ out_str << "\n:Languages:"
158
+ out_str << languages
159
+ out_str << "\n:Hard Skills: #{hard_skills}".rstrip
160
+ out_str << "\n:Soft Skills: #{soft_skills}".rstrip
161
+ out_str << "\n:Education:"
162
+ out_str << education
163
+ out_str << "\n:Professional Experiences:"
164
+ out_str << professional_experiences
165
+ out_str << "\n:Certificates:"
166
+ out_str << certificates
167
+ out_str[1..].to_s
168
+ end
169
+
170
+ private
171
+
172
+ # @param char [String]
173
+ # @return [String]
174
+ def social_networks_urls_separator(char)
175
+ out_str = String.new
176
+ out_str << ' '
177
+ out_str << "+#{char * 22}"
178
+ out_str << "+#{char * 52}"
179
+ out_str << '+'
180
+ out_str
181
+ end
182
+
183
+ # @return [String]
184
+ def social_networks_urls_to_s
185
+ return '' if @social_networks_urls.empty?
186
+
187
+ line_items = @social_networks_urls.map(&:to_table_line).join("\n#{social_networks_urls_separator('-')}\n ")
188
+ out_str = String.new
189
+ out_str << "\n#{social_networks_urls_separator('-')}"
190
+ out_str << "\n |"
191
+ out_str << ' Name |'
192
+ out_str << ' URL |'
193
+ out_str << "\n#{social_networks_urls_separator('=')}"
194
+ out_str << "\n #{line_items}"
195
+ out_str << "\n#{social_networks_urls_separator('-')}"
196
+ out_str
197
+ end
198
+
199
+ # @param char [String]
200
+ # @return [String]
201
+ def languages_separator(char)
202
+ out_str = String.new
203
+ out_str << ' '
204
+ out_str << "+#{char * 10}"
205
+ out_str << "+#{char * 22}"
206
+ out_str << '+'
207
+ out_str
208
+ end
209
+
210
+ # @return [String]
211
+ def languages_to_s
212
+ return '' if @languages.empty?
213
+
214
+ line_items = @languages.map(&:to_table_line).join("\n#{languages_separator('-')}\n ")
215
+ out_str = String.new
216
+ out_str << "\n#{languages_separator('-')}"
217
+ out_str << "\n |"
218
+ out_str << ' Language |'
219
+ out_str << ' Level |'
220
+ out_str << "\n#{languages_separator('=')}"
221
+ out_str << "\n #{line_items}"
222
+ out_str << "\n#{languages_separator('-')}"
223
+ out_str
224
+ end
225
+
226
+ # @param char [String]
227
+ # @return [String]
228
+ def education_separator(char)
229
+ out_str = String.new
230
+ out_str << ' '
231
+ out_str << "+#{char * 17}"
232
+ out_str << "+#{char * 27}"
233
+ out_str << "+#{char * 11}"
234
+ out_str << "+#{char * 10}"
235
+ out_str << "+#{char * 27}"
236
+ out_str << "+#{char * 13}"
237
+ out_str << "+#{char * 12}"
238
+ out_str << '+'
239
+ out_str
240
+ end
241
+
242
+ # @return [String]
243
+ def education_to_s
244
+ return '' if @education.empty?
245
+
246
+ line_items = @education.map(&:to_table_line).join("\n#{education_separator('-')}\n ")
247
+ out_str = String.new
248
+ out_str << "\n#{education_separator('-')}"
249
+ out_str << "\n |"
250
+ out_str << ' Domain |'
251
+ out_str << ' Degree |'
252
+ out_str << ' End Month |'
253
+ out_str << ' End Year |'
254
+ out_str << ' School |'
255
+ out_str << ' Start Month |'
256
+ out_str << ' Start Year |'
257
+ out_str << "\n#{education_separator('=')}"
258
+ out_str << "\n #{line_items}"
259
+ out_str << "\n#{education_separator('-')}"
260
+ out_str
261
+ end
262
+
263
+ # @param char [String]
264
+ # @return [String]
265
+ def professional_experiences_separator(char)
266
+ out_str = String.new
267
+ out_str << ' '
268
+ out_str << "+#{char * 17}"
269
+ out_str << "+#{char * 12}"
270
+ out_str << "+#{char * 38}"
271
+ out_str << "+#{char * 27}"
272
+ out_str << "+#{char * 11}"
273
+ out_str << "+#{char * 10}"
274
+ out_str << "+#{char * 22}"
275
+ out_str << "+#{char * 13}"
276
+ out_str << "+#{char * 12}"
277
+ out_str << '+'
278
+ out_str
279
+ end
280
+
281
+ # @return [String]
282
+ def professional_experiences_to_s
283
+ return '' if @professional_experiences.empty?
284
+
285
+ line_items = @professional_experiences.map(&:to_table_line).join(
286
+ "\n#{professional_experiences_separator('-')}\n "
287
+ )
288
+ out_str = String.new
289
+ out_str << "\n#{professional_experiences_separator('-')}"
290
+ out_str << "\n |"
291
+ out_str << ' Contract Type |'
292
+ out_str << ' Department |'
293
+ out_str << ' Description |'
294
+ out_str << ' Employer |'
295
+ out_str << ' End Month |'
296
+ out_str << ' End Year |'
297
+ out_str << ' Role |'
298
+ out_str << ' Start Month |'
299
+ out_str << ' Start Year |'
300
+ out_str << "\n#{professional_experiences_separator('=')}"
301
+ out_str << "\n #{line_items}"
302
+ out_str << "\n#{professional_experiences_separator('-')}"
303
+ out_str
304
+ end
305
+
306
+ # @param char [String]
307
+ # @return [String]
308
+ def certificates_separator(char)
309
+ out_str = String.new
310
+ out_str << ' '
311
+ out_str << "+#{char * 12}"
312
+ out_str << "+#{char * 32}"
313
+ out_str << "+#{char * 27}"
314
+ out_str << "+#{char * 6}"
315
+ out_str << '+'
316
+ out_str
317
+ end
318
+
319
+ # @return [String]
320
+ def certificates_to_s
321
+ return '' if @certificates.empty?
322
+
323
+ line_items = @certificates.map(&:to_table_line).join("\n#{certificates_separator('-')}\n ")
324
+ out_str = String.new
325
+ out_str << "\n#{certificates_separator('-')}"
326
+ out_str << "\n |"
327
+ out_str << ' Grade |'
328
+ out_str << ' Name |'
329
+ out_str << ' Provider |'
330
+ out_str << ' Year |'
331
+ out_str << "\n#{certificates_separator('=')}"
332
+ out_str << "\n #{line_items}"
333
+ out_str << "\n#{certificates_separator('-')}"
334
+ out_str
335
+ end
336
+ end
337
+ end
338
+ end
339
+ end
340
+ end
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module Resume
9
+ # The list of the candidate's educational background.
10
+ class ResumeV1Education < Mindee::V1::Parsing::Standard::FeatureField
11
+ include Mindee::V1::Parsing::Standard
12
+
13
+ # The area of study or specialization.
14
+ # @return [String]
15
+ attr_reader :degree_domain
16
+ # The type of degree obtained, such as Bachelor's, Master's, or Doctorate.
17
+ # @return [String]
18
+ attr_reader :degree_type
19
+ # The month when the education program or course was completed.
20
+ # @return [String]
21
+ attr_reader :end_month
22
+ # The year when the education program or course was completed.
23
+ # @return [String]
24
+ attr_reader :end_year
25
+ # The name of the school.
26
+ # @return [String]
27
+ attr_reader :school
28
+ # The month when the education program or course began.
29
+ # @return [String]
30
+ attr_reader :start_month
31
+ # The year when the education program or course began.
32
+ # @return [String]
33
+ attr_reader :start_year
34
+
35
+ # @param prediction [Hash]
36
+ # @param page_id [Integer, nil]
37
+ def initialize(prediction, page_id)
38
+ super
39
+ @degree_domain = prediction['degree_domain']
40
+ @degree_type = prediction['degree_type']
41
+ @end_month = prediction['end_month']
42
+ @end_year = prediction['end_year']
43
+ @school = prediction['school']
44
+ @start_month = prediction['start_month']
45
+ @start_year = prediction['start_year']
46
+ @page_id = page_id
47
+ end
48
+
49
+ # @return [Hash]
50
+ def printable_values
51
+ printable = {} # @type var printable: Hash[Symbol, String]
52
+ printable[:degree_domain] = format_for_display(@degree_domain)
53
+ printable[:degree_type] = format_for_display(@degree_type)
54
+ printable[:end_month] = format_for_display(@end_month)
55
+ printable[:end_year] = format_for_display(@end_year)
56
+ printable[:school] = format_for_display(@school)
57
+ printable[:start_month] = format_for_display(@start_month)
58
+ printable[:start_year] = format_for_display(@start_year)
59
+ printable
60
+ end
61
+
62
+ # @return [Hash]
63
+ def table_printable_values
64
+ printable = {} # @type var printable: Hash[Symbol, String]
65
+ printable[:degree_domain] = format_for_display(@degree_domain, 15)
66
+ printable[:degree_type] = format_for_display(@degree_type, 25)
67
+ printable[:end_month] = format_for_display(@end_month, nil)
68
+ printable[:end_year] = format_for_display(@end_year, nil)
69
+ printable[:school] = format_for_display(@school, 25)
70
+ printable[:start_month] = format_for_display(@start_month, nil)
71
+ printable[:start_year] = format_for_display(@start_year, nil)
72
+ printable
73
+ end
74
+
75
+ # @return [String]
76
+ def to_table_line
77
+ printable = table_printable_values
78
+ out_str = String.new
79
+ out_str << format('| %- 16s', printable[:degree_domain])
80
+ out_str << format('| %- 26s', printable[:degree_type])
81
+ out_str << format('| %- 10s', printable[:end_month])
82
+ out_str << format('| %- 9s', printable[:end_year])
83
+ out_str << format('| %- 26s', printable[:school])
84
+ out_str << format('| %- 12s', printable[:start_month])
85
+ out_str << format('| %- 11s', printable[:start_year])
86
+ out_str << '|'
87
+ end
88
+
89
+ # @return [String]
90
+ def to_s
91
+ printable = printable_values
92
+ out_str = String.new
93
+ out_str << "\n :Domain: #{printable[:degree_domain]}"
94
+ out_str << "\n :Degree: #{printable[:degree_type]}"
95
+ out_str << "\n :End Month: #{printable[:end_month]}"
96
+ out_str << "\n :End Year: #{printable[:end_year]}"
97
+ out_str << "\n :School: #{printable[:school]}"
98
+ out_str << "\n :Start Month: #{printable[:start_month]}"
99
+ out_str << "\n :Start Year: #{printable[:start_year]}"
100
+ out_str
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'resume_v1_social_networks_url'
4
+ require_relative 'resume_v1_language'
5
+ require_relative 'resume_v1_education'
6
+ require_relative 'resume_v1_professional_experience'
7
+ require_relative 'resume_v1_certificate'
8
+
9
+ module Mindee
10
+ module V1
11
+ module Product
12
+ module Resume
13
+ # The list of the candidate's educational background.
14
+ class ResumeV1Educations < Array
15
+ # Entries.
16
+ # @return [Array<ResumeV1Education>]
17
+ attr_reader :entries
18
+
19
+ # @param prediction [Array]
20
+ # @param page_id [Integer, nil]
21
+ def initialize(prediction, page_id)
22
+ entries = prediction.map do |entry|
23
+ Resume::ResumeV1Education.new(entry, page_id)
24
+ end
25
+ super(entries)
26
+ end
27
+
28
+ # Creates a line of rST table-compliant string separators.
29
+ # @param char [String] Character to use as a separator.
30
+ # @return [String]
31
+ def self.line_items_separator(char)
32
+ out_str = String.new
33
+ out_str << "+#{char * 17}"
34
+ out_str << "+#{char * 27}"
35
+ out_str << "+#{char * 11}"
36
+ out_str << "+#{char * 10}"
37
+ out_str << "+#{char * 27}"
38
+ out_str << "+#{char * 13}"
39
+ out_str << "+#{char * 12}"
40
+ out_str
41
+ end
42
+
43
+ # @return [String]
44
+ def to_s
45
+ return '' if empty?
46
+
47
+ lines = map do |entry|
48
+ "\n #{entry.to_table_line}\n#{self.class.line_items_separator('-')}"
49
+ end.join
50
+ out_str = String.new
51
+ out_str << "\n#{self.class.line_items_separator('-')}\n "
52
+ out_str << ' | Domain '
53
+ out_str << ' | Degree '
54
+ out_str << ' | End Month'
55
+ out_str << ' | End Year'
56
+ out_str << ' | School '
57
+ out_str << ' | Start Month'
58
+ out_str << ' | Start Year'
59
+ out_str << " |\n#{self.class.line_items_separator('=')}"
60
+ out_str + lines
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module Resume
9
+ # The list of languages that the candidate is proficient in.
10
+ class ResumeV1Language < Mindee::V1::Parsing::Standard::FeatureField
11
+ include Mindee::V1::Parsing::Standard
12
+
13
+ # The language's ISO 639 code.
14
+ # @return [String]
15
+ attr_reader :language
16
+ # The candidate's level for the language.
17
+ # @return [String]
18
+ attr_reader :level
19
+
20
+ # @param prediction [Hash]
21
+ # @param page_id [Integer, nil]
22
+ def initialize(prediction, page_id)
23
+ super
24
+ @language = prediction['language']
25
+ @level = prediction['level']
26
+ @page_id = page_id
27
+ end
28
+
29
+ # @return [Hash]
30
+ def printable_values
31
+ printable = {} # @type var printable: Hash[Symbol, String]
32
+ printable[:language] = format_for_display(@language)
33
+ printable[:level] = format_for_display(@level)
34
+ printable
35
+ end
36
+
37
+ # @return [Hash]
38
+ def table_printable_values
39
+ printable = {} # @type var printable: Hash[Symbol, String]
40
+ printable[:language] = format_for_display(@language, nil)
41
+ printable[:level] = format_for_display(@level, 20)
42
+ printable
43
+ end
44
+
45
+ # @return [String]
46
+ def to_table_line
47
+ printable = table_printable_values
48
+ out_str = String.new
49
+ out_str << format('| %- 9s', printable[:language])
50
+ out_str << format('| %- 21s', printable[:level])
51
+ out_str << '|'
52
+ end
53
+
54
+ # @return [String]
55
+ def to_s
56
+ printable = printable_values
57
+ out_str = String.new
58
+ out_str << "\n :Language: #{printable[:language]}"
59
+ out_str << "\n :Level: #{printable[:level]}"
60
+ out_str
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'resume_v1_social_networks_url'
4
+ require_relative 'resume_v1_language'
5
+ require_relative 'resume_v1_education'
6
+ require_relative 'resume_v1_professional_experience'
7
+ require_relative 'resume_v1_certificate'
8
+
9
+ module Mindee
10
+ module V1
11
+ module Product
12
+ module Resume
13
+ # The list of languages that the candidate is proficient in.
14
+ class ResumeV1Languages < Array
15
+ # Entries.
16
+ # @return [Array<ResumeV1Language>]
17
+ attr_reader :entries
18
+
19
+ # @param prediction [Array]
20
+ # @param page_id [Integer, nil]
21
+ def initialize(prediction, page_id)
22
+ entries = prediction.map do |entry|
23
+ Resume::ResumeV1Language.new(entry, page_id)
24
+ end
25
+ super(entries)
26
+ end
27
+
28
+ # Creates a line of rST table-compliant string separators.
29
+ # @param char [String] Character to use as a separator.
30
+ # @return [String]
31
+ def self.line_items_separator(char)
32
+ out_str = String.new
33
+ out_str << "+#{char * 10}"
34
+ out_str << "+#{char * 22}"
35
+ out_str
36
+ end
37
+
38
+ # @return [String]
39
+ def to_s
40
+ return '' if empty?
41
+
42
+ lines = map do |entry|
43
+ "\n #{entry.to_table_line}\n#{self.class.line_items_separator('-')}"
44
+ end.join
45
+ out_str = String.new
46
+ out_str << "\n#{self.class.line_items_separator('-')}\n "
47
+ out_str << ' | Language'
48
+ out_str << ' | Level '
49
+ out_str << " |\n#{self.class.line_items_separator('=')}"
50
+ out_str + lines
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'resume_v1_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module Resume
10
+ # Resume API version 1.2 page data.
11
+ class ResumeV1Page < Mindee::V1::Parsing::Common::Page
12
+ # @param prediction [Hash]
13
+ def initialize(prediction)
14
+ super
15
+ @prediction = if prediction['prediction'].empty?
16
+ nil
17
+ else
18
+ ResumeV1PagePrediction.new(
19
+ prediction['prediction'],
20
+ prediction['id']
21
+ )
22
+ end
23
+ end
24
+ end
25
+
26
+ # Resume V1 page prediction.
27
+ class ResumeV1PagePrediction < ResumeV1Document
28
+ # @return [String]
29
+ def to_s
30
+ out_str = String.new
31
+ out_str << "\n#{super}"
32
+ out_str
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end