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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 65

def initialize(prediction, page_id)
  super
  @address = Parsing::Standard::StringField.new(
    prediction['address'],
    page_id
  )
  @birth_date = Parsing::Standard::DateField.new(
    prediction['birth_date'],
    page_id
  )
  @birth_place = Parsing::Standard::StringField.new(
    prediction['birth_place'],
    page_id
  )
  @country_of_issue = Parsing::Standard::StringField.new(
    prediction['country_of_issue'],
    page_id
  )
  @document_number = Parsing::Standard::StringField.new(
    prediction['document_number'],
    page_id
  )
  @document_type = Parsing::Standard::ClassificationField.new(
    prediction['document_type'],
    page_id
  )
  @expiry_date = Parsing::Standard::DateField.new(
    prediction['expiry_date'],
    page_id
  )
  @given_names = [] # : Array[Parsing::Standard::StringField]
  prediction['given_names'].each do |item|
    @given_names.push(Parsing::Standard::StringField.new(item, page_id))
  end
  @issue_date = Parsing::Standard::DateField.new(
    prediction['issue_date'],
    page_id
  )
  @mrz_line1 = Parsing::Standard::StringField.new(
    prediction['mrz_line1'],
    page_id
  )
  @mrz_line2 = Parsing::Standard::StringField.new(
    prediction['mrz_line2'],
    page_id
  )
  @mrz_line3 = Parsing::Standard::StringField.new(
    prediction['mrz_line3'],
    page_id
  )
  @nationality = Parsing::Standard::StringField.new(
    prediction['nationality'],
    page_id
  )
  @personal_number = Parsing::Standard::StringField.new(
    prediction['personal_number'],
    page_id
  )
  @sex = Parsing::Standard::StringField.new(prediction['sex'], page_id)
  @state_of_issue = Parsing::Standard::StringField.new(
    prediction['state_of_issue'],
    page_id
  )
  @surnames = [] # : Array[Parsing::Standard::StringField]
  prediction['surnames'].each do |item|
    @surnames.push(Parsing::Standard::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)


135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/mindee/product/international_id/international_id_v2_document.rb', line 135

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