class Indirizzo::Street

Public Class Methods

expand(street) click to toggle source
# File lib/indirizzo/street.rb, line 7
def self.expand(street)
  if !street.empty? && !street[0].nil?
    street.map! {|s|s.strip}
    add = street.map {|item| item.gsub(Name_Abbr.regexp) {|m| Name_Abbr[m]}}
    street |= add
    add = street.map {|item| item.gsub(Std_Abbr.regexp) {|m| Std_Abbr[m]}}
    street |= add
    street.map! {|item| NumberHelper.expand_numbers(item)}
    street.flatten!
    street.map! {|s| s.downcase}
    street.uniq!
  else
    street = []
  end
  street
end
parts(street, number) click to toggle source
# File lib/indirizzo/street.rb, line 24
def self.parts(street, number)
  strings = []
  # Get all the substrings delimited by whitespace
  street.each do |string|
    tokens = string.split(" ")
    strings |= (0...tokens.length).map do |i|
               (i...tokens.length).map {|j| tokens[i..j].join(" ")}
    end.flatten
  end
  strings = Helper.remove_noise_words(strings)

  # Try a simpler case of adding the @number in case everything is an abbr.
  strings += [number] if strings.all? {|s| Std_Abbr.key?(s) || Name_Abbr.key?(s)}
  strings.uniq
end