Class: Mindee::Product::InternationalId::InternationalIdV2Document

Inherits:
Mindee::Parsing::Common::Prediction show all
Includes:
Mindee::Parsing::Standard
Defined in:
lib/mindee/product/international_id/international_id_v2_document.rb

Overview

International ID API version 2.1 document data.

Direct Known Subclasses

InternationalIdV2PagePrediction

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prediction, page_id) ⇒ InternationalIdV2Document

Returns a new instance of InternationalIdV2Document.

Parameters:

  • prediction (Hash)
  • page_id (Integer, nil)


65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 65

def initialize(prediction, page_id)
  super()
  @address = StringField.new(prediction['address'], page_id)
  @birth_date = DateField.new(prediction['birth_date'], page_id)
  @birth_place = StringField.new(prediction['birth_place'], page_id)
  @country_of_issue = StringField.new(prediction['country_of_issue'], page_id)
  @document_number = StringField.new(prediction['document_number'], page_id)
  @document_type = ClassificationField.new(prediction['document_type'], page_id)
  @expiry_date = DateField.new(prediction['expiry_date'], page_id)
  @given_names = []
  prediction['given_names'].each do |item|
    @given_names.push(StringField.new(item, page_id))
  end
  @issue_date = DateField.new(prediction['issue_date'], page_id)
  @mrz_line1 = StringField.new(prediction['mrz_line1'], page_id)
  @mrz_line2 = StringField.new(prediction['mrz_line2'], page_id)
  @mrz_line3 = StringField.new(prediction['mrz_line3'], page_id)
  @nationality = StringField.new(prediction['nationality'], page_id)
  @personal_number = StringField.new(prediction['personal_number'], page_id)
  @sex = StringField.new(prediction['sex'], page_id)
  @state_of_issue = StringField.new(prediction['state_of_issue'], page_id)
  @surnames = []
  prediction['surnames'].each do |item|
    @surnames.push(StringField.new(item, page_id))
  end
end

Instance Attribute Details

#addressMindee::Parsing::Standard::StringField (readonly)

The physical address of the document holder.



13
14
15
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 13

def address
  @address
end

#birth_dateMindee::Parsing::Standard::DateField (readonly)

The date of birth of the document holder.



16
17
18
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 16

def birth_date
  @birth_date
end

#birth_placeMindee::Parsing::Standard::StringField (readonly)

The place of birth of the document holder.



19
20
21
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 19

def birth_place
  @birth_place
end

#country_of_issueMindee::Parsing::Standard::StringField (readonly)

The country where the document was issued.



22
23
24
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 22

def country_of_issue
  @country_of_issue
end

#document_numberMindee::Parsing::Standard::StringField (readonly)

The unique identifier assigned to the document.



25
26
27
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 25

def document_number
  @document_number
end

#document_typeMindee::Parsing::Standard::ClassificationField (readonly)

The type of personal identification document.



28
29
30
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 28

def document_type
  @document_type
end

#expiry_dateMindee::Parsing::Standard::DateField (readonly)

The date when the document becomes invalid.



31
32
33
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 31

def expiry_date
  @expiry_date
end

#given_namesArray<Mindee::Parsing::Standard::StringField> (readonly)

The list of the document holder’s given names.



34
35
36
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 34

def given_names
  @given_names
end

#issue_dateMindee::Parsing::Standard::DateField (readonly)

The date when the document was issued.



37
38
39
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 37

def issue_date
  @issue_date
end

#mrz_line1Mindee::Parsing::Standard::StringField (readonly)

The Machine Readable Zone, first line.



40
41
42
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 40

def mrz_line1
  @mrz_line1
end

#mrz_line2Mindee::Parsing::Standard::StringField (readonly)

The Machine Readable Zone, second line.



43
44
45
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 43

def mrz_line2
  @mrz_line2
end

#mrz_line3Mindee::Parsing::Standard::StringField (readonly)

The Machine Readable Zone, third line.



46
47
48
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 46

def mrz_line3
  @mrz_line3
end

#nationalityMindee::Parsing::Standard::StringField (readonly)

The country of citizenship of the document holder.



49
50
51
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 49

def nationality
  @nationality
end

#personal_numberMindee::Parsing::Standard::StringField (readonly)

The unique identifier assigned to the document holder.



52
53
54
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 52

def personal_number
  @personal_number
end

#sexMindee::Parsing::Standard::StringField (readonly)

The biological sex of the document holder.



55
56
57
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 55

def sex
  @sex
end

#state_of_issueMindee::Parsing::Standard::StringField (readonly)

The state or territory where the document was issued.



58
59
60
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 58

def state_of_issue
  @state_of_issue
end

#surnamesArray<Mindee::Parsing::Standard::StringField> (readonly)

The list of the document holder’s family names.



61
62
63
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 61

def surnames
  @surnames
end

Instance Method Details

#to_sString

Returns:

  • (String)


93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 93

def to_s
  surnames = @surnames.join("\n #{' ' * 10}")
  given_names = @given_names.join("\n #{' ' * 13}")
  out_str = String.new
  out_str << "\n:Document Type: #{@document_type}".rstrip
  out_str << "\n:Document Number: #{@document_number}".rstrip
  out_str << "\n:Surnames: #{surnames}".rstrip
  out_str << "\n:Given Names: #{given_names}".rstrip
  out_str << "\n:Sex: #{@sex}".rstrip
  out_str << "\n:Birth Date: #{@birth_date}".rstrip
  out_str << "\n:Birth Place: #{@birth_place}".rstrip
  out_str << "\n:Nationality: #{@nationality}".rstrip
  out_str << "\n:Personal Number: #{@personal_number}".rstrip
  out_str << "\n:Country of Issue: #{@country_of_issue}".rstrip
  out_str << "\n:State of Issue: #{@state_of_issue}".rstrip
  out_str << "\n:Issue Date: #{@issue_date}".rstrip
  out_str << "\n:Expiration Date: #{@expiry_date}".rstrip
  out_str << "\n:Address: #{@address}".rstrip
  out_str << "\n:MRZ Line 1: #{@mrz_line1}".rstrip
  out_str << "\n:MRZ Line 2: #{@mrz_line2}".rstrip
  out_str << "\n:MRZ Line 3: #{@mrz_line3}".rstrip
  out_str[1..].to_s
end