class PostcodeValidation::Domain::PotentialAddressMatch

Attributes

description[R]
text[R]

Public Class Methods

new(text:, description:) click to toggle source
# File lib/postcode_validation/domain/potential_address_match.rb, line 4
def initialize(text:, description:)
  @text = text
  @description = description
end

Public Instance Methods

postcode_matches?(postcode) click to toggle source
# File lib/postcode_validation/domain/potential_address_match.rb, line 9
def postcode_matches?(postcode)
  normalised_postcode = letters_and_numbers_only(postcode.upcase)

  text_includes?(normalised_postcode) || description_includes?(normalised_postcode)
end

Private Instance Methods

description_includes?(postcode) click to toggle source
# File lib/postcode_validation/domain/potential_address_match.rb, line 23
def description_includes?(postcode)
  letters_and_numbers_only(description).include?(postcode)
end
letters_and_numbers_only(postcode) click to toggle source
# File lib/postcode_validation/domain/potential_address_match.rb, line 27
def letters_and_numbers_only(postcode)
  postcode.gsub(/[^0-9a-zA-Z]/, '')
end
text_includes?(postcode) click to toggle source
# File lib/postcode_validation/domain/potential_address_match.rb, line 19
def text_includes?(postcode)
  letters_and_numbers_only(text).include?(postcode)
end