mindee 3.5.0 → 3.6.0

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/README.md +2 -1
  4. data/bin/mindee.rb +6 -0
  5. data/docs/bank_account_details_v2.md +1 -1
  6. data/docs/bank_check_v1.md +1 -1
  7. data/docs/bank_statement_fr_v1.md +1 -1
  8. data/docs/barcode_reader_v1.md +1 -1
  9. data/docs/carte_grise_v1.md +1 -1
  10. data/docs/carte_vitale_v1.md +1 -1
  11. data/docs/code_samples/resume_v1_async.txt +19 -0
  12. data/docs/cropper_v1.md +1 -1
  13. data/docs/custom_v1.md +1 -1
  14. data/docs/eu_driver_license_v1.md +5 -5
  15. data/docs/expense_receipts_v5.md +1 -1
  16. data/docs/financial_document_v1.md +1 -1
  17. data/docs/generated_v1.md +1 -1
  18. data/docs/getting_started.md +1 -1
  19. data/docs/idcard_fr_v2.md +1 -1
  20. data/docs/international_id_v2.md +195 -0
  21. data/docs/invoice_splitter_v1.md +1 -1
  22. data/docs/invoices_v4.md +1 -1
  23. data/docs/license_plates_v1.md +1 -1
  24. data/docs/multi_receipts_detector_v1.md +1 -1
  25. data/docs/passport_v1.md +1 -1
  26. data/docs/proof_of_address_v1.md +1 -1
  27. data/docs/resume_v1.md +334 -0
  28. data/docs/us_driver_license_v1.md +1 -1
  29. data/docs/us_w9_v1.md +1 -1
  30. data/lib/mindee/parsing/standard/base_field.rb +1 -1
  31. data/lib/mindee/product/.rubocop.yml +7 -2
  32. data/lib/mindee/product/eu/driver_license/driver_license_v1.rb +2 -2
  33. data/lib/mindee/product/eu/driver_license/driver_license_v1_document.rb +1 -1
  34. data/lib/mindee/product/eu/driver_license/driver_license_v1_page.rb +2 -2
  35. data/lib/mindee/product/fr/carte_grise/carte_grise_v1_document.rb +0 -2
  36. data/lib/mindee/product/resume/resume_v1.rb +39 -0
  37. data/lib/mindee/product/resume/resume_v1_certificate.rb +69 -0
  38. data/lib/mindee/product/resume/resume_v1_document.rb +322 -0
  39. data/lib/mindee/product/resume/resume_v1_education.rb +90 -0
  40. data/lib/mindee/product/resume/resume_v1_language.rb +55 -0
  41. data/lib/mindee/product/resume/resume_v1_page.rb +32 -0
  42. data/lib/mindee/product/resume/resume_v1_professional_experience.rb +97 -0
  43. data/lib/mindee/product/resume/resume_v1_social_networks_url.rb +55 -0
  44. data/lib/mindee/product.rb +1 -0
  45. data/lib/mindee/version.rb +1 -1
  46. metadata +13 -2
@@ -0,0 +1,322 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'resume_v1_social_networks_url'
5
+ require_relative 'resume_v1_language'
6
+ require_relative 'resume_v1_education'
7
+ require_relative 'resume_v1_professional_experience'
8
+ require_relative 'resume_v1_certificate'
9
+
10
+ module Mindee
11
+ module Product
12
+ module Resume
13
+ # Resume V1 document prediction.
14
+ class ResumeV1Document < Mindee::Parsing::Common::Prediction
15
+ include Mindee::Parsing::Standard
16
+ # The location information of the candidate, including city, state, and country.
17
+ # @return [Mindee::Parsing::Standard::StringField]
18
+ attr_reader :address
19
+ # The list of certificates obtained by the candidate.
20
+ # @return [Array<Mindee::Product::Resume::ResumeV1Certificate>]
21
+ attr_reader :certificates
22
+ # The ISO 639 code of the language in which the document is written.
23
+ # @return [Mindee::Parsing::Standard::StringField]
24
+ attr_reader :document_language
25
+ # The type of the document sent.
26
+ # @return [Mindee::Parsing::Standard::ClassificationField]
27
+ attr_reader :document_type
28
+ # The list of the candidate's educational background.
29
+ # @return [Array<Mindee::Product::Resume::ResumeV1Education>]
30
+ attr_reader :education
31
+ # The email address of the candidate.
32
+ # @return [Mindee::Parsing::Standard::StringField]
33
+ attr_reader :email_address
34
+ # The candidate's first or given names.
35
+ # @return [Array<Mindee::Parsing::Standard::StringField>]
36
+ attr_reader :given_names
37
+ # The list of the candidate's technical abilities and knowledge.
38
+ # @return [Array<Mindee::Parsing::Standard::StringField>]
39
+ attr_reader :hard_skills
40
+ # The position that the candidate is applying for.
41
+ # @return [Mindee::Parsing::Standard::StringField]
42
+ attr_reader :job_applied
43
+ # The list of languages that the candidate is proficient in.
44
+ # @return [Array<Mindee::Product::Resume::ResumeV1Language>]
45
+ attr_reader :languages
46
+ # The ISO 3166 code for the country of citizenship of the candidate.
47
+ # @return [Mindee::Parsing::Standard::StringField]
48
+ attr_reader :nationality
49
+ # The phone number of the candidate.
50
+ # @return [Mindee::Parsing::Standard::StringField]
51
+ attr_reader :phone_number
52
+ # The candidate's current profession.
53
+ # @return [Mindee::Parsing::Standard::StringField]
54
+ attr_reader :profession
55
+ # The list of the candidate's professional experiences.
56
+ # @return [Array<Mindee::Product::Resume::ResumeV1ProfessionalExperience>]
57
+ attr_reader :professional_experiences
58
+ # The list of social network profiles of the candidate.
59
+ # @return [Array<Mindee::Product::Resume::ResumeV1SocialNetworksUrl>]
60
+ attr_reader :social_networks_urls
61
+ # The list of the candidate's interpersonal and communication abilities.
62
+ # @return [Array<Mindee::Parsing::Standard::StringField>]
63
+ attr_reader :soft_skills
64
+ # The candidate's last names.
65
+ # @return [Array<Mindee::Parsing::Standard::StringField>]
66
+ attr_reader :surnames
67
+
68
+ # @param prediction [Hash]
69
+ # @param page_id [Integer, nil]
70
+ def initialize(prediction, page_id)
71
+ super()
72
+ @address = StringField.new(prediction['address'], page_id)
73
+ @certificates = []
74
+ prediction['certificates'].each do |item|
75
+ @certificates.push(ResumeV1Certificate.new(item, page_id))
76
+ end
77
+ @document_language = StringField.new(prediction['document_language'], page_id)
78
+ @document_type = ClassificationField.new(prediction['document_type'], page_id)
79
+ @education = []
80
+ prediction['education'].each do |item|
81
+ @education.push(ResumeV1Education.new(item, page_id))
82
+ end
83
+ @email_address = StringField.new(prediction['email_address'], page_id)
84
+ @given_names = []
85
+ prediction['given_names'].each do |item|
86
+ @given_names.push(StringField.new(item, page_id))
87
+ end
88
+ @hard_skills = []
89
+ prediction['hard_skills'].each do |item|
90
+ @hard_skills.push(StringField.new(item, page_id))
91
+ end
92
+ @job_applied = StringField.new(prediction['job_applied'], page_id)
93
+ @languages = []
94
+ prediction['languages'].each do |item|
95
+ @languages.push(ResumeV1Language.new(item, page_id))
96
+ end
97
+ @nationality = StringField.new(prediction['nationality'], page_id)
98
+ @phone_number = StringField.new(prediction['phone_number'], page_id)
99
+ @profession = StringField.new(prediction['profession'], page_id)
100
+ @professional_experiences = []
101
+ prediction['professional_experiences'].each do |item|
102
+ @professional_experiences.push(ResumeV1ProfessionalExperience.new(item, page_id))
103
+ end
104
+ @social_networks_urls = []
105
+ prediction['social_networks_urls'].each do |item|
106
+ @social_networks_urls.push(ResumeV1SocialNetworksUrl.new(item, page_id))
107
+ end
108
+ @soft_skills = []
109
+ prediction['soft_skills'].each do |item|
110
+ @soft_skills.push(StringField.new(item, page_id))
111
+ end
112
+ @surnames = []
113
+ prediction['surnames'].each do |item|
114
+ @surnames.push(StringField.new(item, page_id))
115
+ end
116
+ end
117
+
118
+ # @return [String]
119
+ def to_s
120
+ given_names = @given_names.join("\n #{' ' * 13}")
121
+ surnames = @surnames.join("\n #{' ' * 10}")
122
+ social_networks_urls = social_networks_urls_to_s
123
+ languages = languages_to_s
124
+ hard_skills = @hard_skills.join("\n #{' ' * 13}")
125
+ soft_skills = @soft_skills.join("\n #{' ' * 13}")
126
+ education = education_to_s
127
+ professional_experiences = professional_experiences_to_s
128
+ certificates = certificates_to_s
129
+ out_str = String.new
130
+ out_str << "\n:Document Language: #{@document_language}".rstrip
131
+ out_str << "\n:Document Type: #{@document_type}".rstrip
132
+ out_str << "\n:Given Names: #{given_names}".rstrip
133
+ out_str << "\n:Surnames: #{surnames}".rstrip
134
+ out_str << "\n:Nationality: #{@nationality}".rstrip
135
+ out_str << "\n:Email Address: #{@email_address}".rstrip
136
+ out_str << "\n:Phone Number: #{@phone_number}".rstrip
137
+ out_str << "\n:Address: #{@address}".rstrip
138
+ out_str << "\n:Social Networks:"
139
+ out_str << social_networks_urls
140
+ out_str << "\n:Profession: #{@profession}".rstrip
141
+ out_str << "\n:Job Applied: #{@job_applied}".rstrip
142
+ out_str << "\n:Languages:"
143
+ out_str << languages
144
+ out_str << "\n:Hard Skills: #{hard_skills}".rstrip
145
+ out_str << "\n:Soft Skills: #{soft_skills}".rstrip
146
+ out_str << "\n:Education:"
147
+ out_str << education
148
+ out_str << "\n:Professional Experiences:"
149
+ out_str << professional_experiences
150
+ out_str << "\n:Certificates:"
151
+ out_str << certificates
152
+ out_str[1..].to_s
153
+ end
154
+
155
+ private
156
+
157
+ # @param char [String]
158
+ # @return [String]
159
+ def social_networks_urls_separator(char)
160
+ out_str = String.new
161
+ out_str << ' '
162
+ out_str << "+#{char * 22}"
163
+ out_str << "+#{char * 52}"
164
+ out_str << '+'
165
+ out_str
166
+ end
167
+
168
+ # @return [String]
169
+ def social_networks_urls_to_s
170
+ return '' if @social_networks_urls.empty?
171
+
172
+ line_items = @social_networks_urls.map(&:to_table_line).join("\n#{social_networks_urls_separator('-')}\n ")
173
+ out_str = String.new
174
+ out_str << "\n#{social_networks_urls_separator('-')}"
175
+ out_str << "\n |"
176
+ out_str << ' Name |'
177
+ out_str << ' URL |'
178
+ out_str << "\n#{social_networks_urls_separator('=')}"
179
+ out_str << "\n #{line_items}"
180
+ out_str << "\n#{social_networks_urls_separator('-')}"
181
+ out_str
182
+ end
183
+
184
+ # @param char [String]
185
+ # @return [String]
186
+ def languages_separator(char)
187
+ out_str = String.new
188
+ out_str << ' '
189
+ out_str << "+#{char * 10}"
190
+ out_str << "+#{char * 22}"
191
+ out_str << '+'
192
+ out_str
193
+ end
194
+
195
+ # @return [String]
196
+ def languages_to_s
197
+ return '' if @languages.empty?
198
+
199
+ line_items = @languages.map(&:to_table_line).join("\n#{languages_separator('-')}\n ")
200
+ out_str = String.new
201
+ out_str << "\n#{languages_separator('-')}"
202
+ out_str << "\n |"
203
+ out_str << ' Language |'
204
+ out_str << ' Level |'
205
+ out_str << "\n#{languages_separator('=')}"
206
+ out_str << "\n #{line_items}"
207
+ out_str << "\n#{languages_separator('-')}"
208
+ out_str
209
+ end
210
+
211
+ # @param char [String]
212
+ # @return [String]
213
+ def education_separator(char)
214
+ out_str = String.new
215
+ out_str << ' '
216
+ out_str << "+#{char * 17}"
217
+ out_str << "+#{char * 27}"
218
+ out_str << "+#{char * 11}"
219
+ out_str << "+#{char * 10}"
220
+ out_str << "+#{char * 27}"
221
+ out_str << "+#{char * 13}"
222
+ out_str << "+#{char * 12}"
223
+ out_str << '+'
224
+ out_str
225
+ end
226
+
227
+ # @return [String]
228
+ def education_to_s
229
+ return '' if @education.empty?
230
+
231
+ line_items = @education.map(&:to_table_line).join("\n#{education_separator('-')}\n ")
232
+ out_str = String.new
233
+ out_str << "\n#{education_separator('-')}"
234
+ out_str << "\n |"
235
+ out_str << ' Domain |'
236
+ out_str << ' Degree |'
237
+ out_str << ' End Month |'
238
+ out_str << ' End Year |'
239
+ out_str << ' School |'
240
+ out_str << ' Start Month |'
241
+ out_str << ' Start Year |'
242
+ out_str << "\n#{education_separator('=')}"
243
+ out_str << "\n #{line_items}"
244
+ out_str << "\n#{education_separator('-')}"
245
+ out_str
246
+ end
247
+
248
+ # @param char [String]
249
+ # @return [String]
250
+ def professional_experiences_separator(char)
251
+ out_str = String.new
252
+ out_str << ' '
253
+ out_str << "+#{char * 17}"
254
+ out_str << "+#{char * 12}"
255
+ out_str << "+#{char * 27}"
256
+ out_str << "+#{char * 11}"
257
+ out_str << "+#{char * 10}"
258
+ out_str << "+#{char * 22}"
259
+ out_str << "+#{char * 13}"
260
+ out_str << "+#{char * 12}"
261
+ out_str << '+'
262
+ out_str
263
+ end
264
+
265
+ # @return [String]
266
+ def professional_experiences_to_s
267
+ return '' if @professional_experiences.empty?
268
+
269
+ line_items = @professional_experiences.map(&:to_table_line).join(
270
+ "\n#{professional_experiences_separator('-')}\n "
271
+ )
272
+ out_str = String.new
273
+ out_str << "\n#{professional_experiences_separator('-')}"
274
+ out_str << "\n |"
275
+ out_str << ' Contract Type |'
276
+ out_str << ' Department |'
277
+ out_str << ' Employer |'
278
+ out_str << ' End Month |'
279
+ out_str << ' End Year |'
280
+ out_str << ' Role |'
281
+ out_str << ' Start Month |'
282
+ out_str << ' Start Year |'
283
+ out_str << "\n#{professional_experiences_separator('=')}"
284
+ out_str << "\n #{line_items}"
285
+ out_str << "\n#{professional_experiences_separator('-')}"
286
+ out_str
287
+ end
288
+
289
+ # @param char [String]
290
+ # @return [String]
291
+ def certificates_separator(char)
292
+ out_str = String.new
293
+ out_str << ' '
294
+ out_str << "+#{char * 12}"
295
+ out_str << "+#{char * 32}"
296
+ out_str << "+#{char * 27}"
297
+ out_str << "+#{char * 6}"
298
+ out_str << '+'
299
+ out_str
300
+ end
301
+
302
+ # @return [String]
303
+ def certificates_to_s
304
+ return '' if @certificates.empty?
305
+
306
+ line_items = @certificates.map(&:to_table_line).join("\n#{certificates_separator('-')}\n ")
307
+ out_str = String.new
308
+ out_str << "\n#{certificates_separator('-')}"
309
+ out_str << "\n |"
310
+ out_str << ' Grade |'
311
+ out_str << ' Name |'
312
+ out_str << ' Provider |'
313
+ out_str << ' Year |'
314
+ out_str << "\n#{certificates_separator('=')}"
315
+ out_str << "\n #{line_items}"
316
+ out_str << "\n#{certificates_separator('-')}"
317
+ out_str
318
+ end
319
+ end
320
+ end
321
+ end
322
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module Product
7
+ module Resume
8
+ # The list of the candidate's educational background.
9
+ class ResumeV1Education < Mindee::Parsing::Standard::FeatureField
10
+ include Mindee::Parsing::Standard
11
+ # The area of study or specialization.
12
+ # @return [String]
13
+ attr_reader :degree_domain
14
+ # The type of degree obtained, such as Bachelor's, Master's, or Doctorate.
15
+ # @return [String]
16
+ attr_reader :degree_type
17
+ # The month when the education program or course was completed.
18
+ # @return [String]
19
+ attr_reader :end_month
20
+ # The year when the education program or course was completed.
21
+ # @return [String]
22
+ attr_reader :end_year
23
+ # The name of the school.
24
+ # @return [String]
25
+ attr_reader :school
26
+ # The month when the education program or course began.
27
+ # @return [String]
28
+ attr_reader :start_month
29
+ # The year when the education program or course began.
30
+ # @return [String]
31
+ attr_reader :start_year
32
+
33
+ # @param prediction [Hash]
34
+ # @param page_id [Integer, nil]
35
+ def initialize(prediction, page_id)
36
+ super(prediction, page_id)
37
+ @degree_domain = prediction['degree_domain']
38
+ @degree_type = prediction['degree_type']
39
+ @end_month = prediction['end_month']
40
+ @end_year = prediction['end_year']
41
+ @school = prediction['school']
42
+ @start_month = prediction['start_month']
43
+ @start_year = prediction['start_year']
44
+ @page_id = page_id
45
+ end
46
+
47
+ # @return [Hash]
48
+ def printable_values
49
+ printable = {}
50
+ printable[:degree_domain] = format_for_display(@degree_domain, 15)
51
+ printable[:degree_type] = format_for_display(@degree_type, 25)
52
+ printable[:end_month] = format_for_display(@end_month, nil)
53
+ printable[:end_year] = format_for_display(@end_year, nil)
54
+ printable[:school] = format_for_display(@school, 25)
55
+ printable[:start_month] = format_for_display(@start_month, nil)
56
+ printable[:start_year] = format_for_display(@start_year, nil)
57
+ printable
58
+ end
59
+
60
+ # @return [String]
61
+ def to_table_line
62
+ printable = printable_values
63
+ out_str = String.new
64
+ out_str << format('| %- 16s', printable[:degree_domain])
65
+ out_str << format('| %- 26s', printable[:degree_type])
66
+ out_str << format('| %- 10s', printable[:end_month])
67
+ out_str << format('| %- 9s', printable[:end_year])
68
+ out_str << format('| %- 26s', printable[:school])
69
+ out_str << format('| %- 12s', printable[:start_month])
70
+ out_str << format('| %- 11s', printable[:start_year])
71
+ out_str << '|'
72
+ end
73
+
74
+ # @return [String]
75
+ def to_s
76
+ printable = printable_values
77
+ out_str = String.new
78
+ out_str << "\n :Domain: #{printable[:degree_domain]}"
79
+ out_str << "\n :Degree: #{printable[:degree_type]}"
80
+ out_str << "\n :End Month: #{printable[:end_month]}"
81
+ out_str << "\n :End Year: #{printable[:end_year]}"
82
+ out_str << "\n :School: #{printable[:school]}"
83
+ out_str << "\n :Start Month: #{printable[:start_month]}"
84
+ out_str << "\n :Start Year: #{printable[:start_year]}"
85
+ out_str
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module Product
7
+ module Resume
8
+ # The list of languages that the candidate is proficient in.
9
+ class ResumeV1Language < Mindee::Parsing::Standard::FeatureField
10
+ include Mindee::Parsing::Standard
11
+ # The language's ISO 639 code.
12
+ # @return [String]
13
+ attr_reader :language
14
+ # The candidate's level for the language.
15
+ # @return [String]
16
+ attr_reader :level
17
+
18
+ # @param prediction [Hash]
19
+ # @param page_id [Integer, nil]
20
+ def initialize(prediction, page_id)
21
+ super(prediction, page_id)
22
+ @language = prediction['language']
23
+ @level = prediction['level']
24
+ @page_id = page_id
25
+ end
26
+
27
+ # @return [Hash]
28
+ def printable_values
29
+ printable = {}
30
+ printable[:language] = format_for_display(@language, nil)
31
+ printable[:level] = format_for_display(@level, 20)
32
+ printable
33
+ end
34
+
35
+ # @return [String]
36
+ def to_table_line
37
+ printable = printable_values
38
+ out_str = String.new
39
+ out_str << format('| %- 9s', printable[:language])
40
+ out_str << format('| %- 21s', printable[:level])
41
+ out_str << '|'
42
+ end
43
+
44
+ # @return [String]
45
+ def to_s
46
+ printable = printable_values
47
+ out_str = String.new
48
+ out_str << "\n :Language: #{printable[:language]}"
49
+ out_str << "\n :Level: #{printable[:level]}"
50
+ out_str
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'resume_v1_document'
5
+
6
+ module Mindee
7
+ module Product
8
+ module Resume
9
+ # Resume V1 page.
10
+ class ResumeV1Page < Mindee::Parsing::Common::Page
11
+ # @param prediction [Hash]
12
+ def initialize(prediction)
13
+ super(prediction)
14
+ @prediction = ResumeV1PagePrediction.new(
15
+ prediction['prediction'],
16
+ prediction['id']
17
+ )
18
+ end
19
+ end
20
+
21
+ # Resume V1 page prediction.
22
+ class ResumeV1PagePrediction < ResumeV1Document
23
+ # @return [String]
24
+ def to_s
25
+ out_str = String.new
26
+ out_str << "\n#{super}"
27
+ out_str
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module Product
7
+ module Resume
8
+ # The list of the candidate's professional experiences.
9
+ class ResumeV1ProfessionalExperience < Mindee::Parsing::Standard::FeatureField
10
+ include Mindee::Parsing::Standard
11
+ # The type of contract for the professional experience.
12
+ # @return [String]
13
+ attr_reader :contract_type
14
+ # The specific department or division within the company.
15
+ # @return [String]
16
+ attr_reader :department
17
+ # The name of the company or organization.
18
+ # @return [String]
19
+ attr_reader :employer
20
+ # The month when the professional experience ended.
21
+ # @return [String]
22
+ attr_reader :end_month
23
+ # The year when the professional experience ended.
24
+ # @return [String]
25
+ attr_reader :end_year
26
+ # The position or job title held by the candidate.
27
+ # @return [String]
28
+ attr_reader :role
29
+ # The month when the professional experience began.
30
+ # @return [String]
31
+ attr_reader :start_month
32
+ # The year when the professional experience began.
33
+ # @return [String]
34
+ attr_reader :start_year
35
+
36
+ # @param prediction [Hash]
37
+ # @param page_id [Integer, nil]
38
+ def initialize(prediction, page_id)
39
+ super(prediction, page_id)
40
+ @contract_type = prediction['contract_type']
41
+ @department = prediction['department']
42
+ @employer = prediction['employer']
43
+ @end_month = prediction['end_month']
44
+ @end_year = prediction['end_year']
45
+ @role = prediction['role']
46
+ @start_month = prediction['start_month']
47
+ @start_year = prediction['start_year']
48
+ @page_id = page_id
49
+ end
50
+
51
+ # @return [Hash]
52
+ def printable_values
53
+ printable = {}
54
+ printable[:contract_type] = format_for_display(@contract_type, 15)
55
+ printable[:department] = format_for_display(@department, 10)
56
+ printable[:employer] = format_for_display(@employer, 25)
57
+ printable[:end_month] = format_for_display(@end_month, nil)
58
+ printable[:end_year] = format_for_display(@end_year, nil)
59
+ printable[:role] = format_for_display(@role, 20)
60
+ printable[:start_month] = format_for_display(@start_month, nil)
61
+ printable[:start_year] = format_for_display(@start_year, nil)
62
+ printable
63
+ end
64
+
65
+ # @return [String]
66
+ def to_table_line
67
+ printable = printable_values
68
+ out_str = String.new
69
+ out_str << format('| %- 16s', printable[:contract_type])
70
+ out_str << format('| %- 11s', printable[:department])
71
+ out_str << format('| %- 26s', printable[:employer])
72
+ out_str << format('| %- 10s', printable[:end_month])
73
+ out_str << format('| %- 9s', printable[:end_year])
74
+ out_str << format('| %- 21s', printable[:role])
75
+ out_str << format('| %- 12s', printable[:start_month])
76
+ out_str << format('| %- 11s', printable[:start_year])
77
+ out_str << '|'
78
+ end
79
+
80
+ # @return [String]
81
+ def to_s
82
+ printable = printable_values
83
+ out_str = String.new
84
+ out_str << "\n :Contract Type: #{printable[:contract_type]}"
85
+ out_str << "\n :Department: #{printable[:department]}"
86
+ out_str << "\n :Employer: #{printable[:employer]}"
87
+ out_str << "\n :End Month: #{printable[:end_month]}"
88
+ out_str << "\n :End Year: #{printable[:end_year]}"
89
+ out_str << "\n :Role: #{printable[:role]}"
90
+ out_str << "\n :Start Month: #{printable[:start_month]}"
91
+ out_str << "\n :Start Year: #{printable[:start_year]}"
92
+ out_str
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module Product
7
+ module Resume
8
+ # The list of social network profiles of the candidate.
9
+ class ResumeV1SocialNetworksUrl < Mindee::Parsing::Standard::FeatureField
10
+ include Mindee::Parsing::Standard
11
+ # The name of the social network.
12
+ # @return [String]
13
+ attr_reader :name
14
+ # The URL of the social network.
15
+ # @return [String]
16
+ attr_reader :url
17
+
18
+ # @param prediction [Hash]
19
+ # @param page_id [Integer, nil]
20
+ def initialize(prediction, page_id)
21
+ super(prediction, page_id)
22
+ @name = prediction['name']
23
+ @url = prediction['url']
24
+ @page_id = page_id
25
+ end
26
+
27
+ # @return [Hash]
28
+ def printable_values
29
+ printable = {}
30
+ printable[:name] = format_for_display(@name, 20)
31
+ printable[:url] = format_for_display(@url, 50)
32
+ printable
33
+ end
34
+
35
+ # @return [String]
36
+ def to_table_line
37
+ printable = printable_values
38
+ out_str = String.new
39
+ out_str << format('| %- 21s', printable[:name])
40
+ out_str << format('| %- 51s', printable[:url])
41
+ out_str << '|'
42
+ end
43
+
44
+ # @return [String]
45
+ def to_s
46
+ printable = printable_values
47
+ out_str = String.new
48
+ out_str << "\n :Name: #{printable[:name]}"
49
+ out_str << "\n :URL: #{printable[:url]}"
50
+ out_str
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -23,6 +23,7 @@ require_relative 'product/generated/generated_v1'
23
23
  require_relative 'product/invoice_splitter/invoice_splitter_v1'
24
24
  require_relative 'product/international_id/international_id_v1'
25
25
  require_relative 'product/international_id/international_id_v2'
26
+ require_relative 'product/resume/resume_v1'
26
27
  require_relative 'product/us/bank_check/bank_check_v1'
27
28
  require_relative 'product/us/driver_license/driver_license_v1'
28
29
  require_relative 'product/us/w9/w9_v1'
@@ -3,7 +3,7 @@
3
3
  # Mindee
4
4
  module Mindee
5
5
  # Current version.
6
- VERSION = '3.5.0'
6
+ VERSION = '3.6.0'
7
7
 
8
8
  # Finds and return the current platform.
9
9
  # @return [String]