Class: AtlasEngine::ValidationTranscriber::AddressParsings
- Inherits:
-
Object
- Object
- AtlasEngine::ValidationTranscriber::AddressParsings
show all
- Extended by:
- T::Sig
- Includes:
- LogHelper
- Defined in:
- app/lib/atlas_engine/validation_transcriber/address_parsings.rb
Constant Summary
collapse
- ParsedComponents =
T.type_alias { T::Hash[Symbol, String] }
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from LogHelper
#log_error, #log_info, #log_warn
Constructor Details
#initialize(address_input:, locale: nil) ⇒ AddressParsings
Returns a new instance of AddressParsings.
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'app/lib/atlas_engine/validation_transcriber/address_parsings.rb', line 16
def initialize(address_input:, locale: nil)
@parsings = T.let(
begin
if address_input.country_code.blank?
[]
else
parsing_result = AddressParserFactory.create(address: address_input, locale: locale).parse
log_unparsable_address(address_input) if parsing_result.empty?
parsing_result
end
end,
T::Array[ParsedComponents],
)
end
|
Instance Attribute Details
#parsings ⇒ Object
Returns the value of attribute parsings.
13
14
15
|
# File 'app/lib/atlas_engine/validation_transcriber/address_parsings.rb', line 13
def parsings
@parsings
end
|
Instance Method Details
#describes_po_box? ⇒ Boolean
32
33
34
|
# File 'app/lib/atlas_engine/validation_transcriber/address_parsings.rb', line 32
def describes_po_box?
parsings.any? { |parsing| parsing[:po_box] }
end
|
#log_unparsable_address(address_input) ⇒ Object
49
50
51
|
# File 'app/lib/atlas_engine/validation_transcriber/address_parsings.rb', line 49
def log_unparsable_address(address_input)
log_info("[AddressValidation] Unable to parse address lines", address_input.to_h.except(:phone))
end
|
#potential_building_numbers ⇒ Object
44
45
46
|
# File 'app/lib/atlas_engine/validation_transcriber/address_parsings.rb', line 44
def potential_building_numbers
parsings.pluck(:building_num).compact.uniq.reject { |n| n.match?(/\d{7,}/) }
end
|
#potential_streets ⇒ Object
37
38
39
40
41
|
# File 'app/lib/atlas_engine/validation_transcriber/address_parsings.rb', line 37
def potential_streets
potential_parsings = parsings.pluck(:street).compact
potential_parsings << "po box" if describes_po_box?
potential_parsings.uniq
end
|