Skip to content

Instantly share code, notes, and snippets.

@jgarlick
Created September 14, 2011 13:39
Show Gist options
  • Save jgarlick/1216566 to your computer and use it in GitHub Desktop.
Save jgarlick/1216566 to your computer and use it in GitHub Desktop.
def formatted_address(order, nl="\n")
name = strip_extra_spaces(order.name)
addr1 = strip_extra_spaces(order.addr1)
addr2 = order.addr2.blank? ? '' : strip_extra_spaces(order.addr2)
city = order.city.blank? ? '' : strip_extra_spaces(order.city)
county = order.county.blank? ? '' : strip_extra_spaces(order.county)
postcode = order.postcode.blank? ? '' : strip_extra_spaces(order.postcode)
country = order.country
# fix when addr1 is just a house number and the road is in addr2
if addr1 =~ /^[0-9]*$/ && !addr2.blank?
addr1 += " " + addr2
addr2 = ""
end
if country == "Australia"
address = "#{name}"
address += "#{nl}#{addr1}"
address += "#{nl}#{addr2}" unless addr2.blank?
address += "#{nl}#{city.upcase}" # WEST BEACH SA 5024
address += " #{county.upcase}" unless county.blank?
address += " #{postcode.upcase}"
address += "#{nl}#{country.upcase}"
elsif country == "Canada" # whole address uppercase
address = "#{name.upcase}"
address += "#{nl}#{addr1.upcase}"
address += "#{nl}#{addr2.upcase}" unless addr2.blank?
address += "#{nl}#{city.upcase}" # MONTREAL QC H3Z 2Y7
address += " #{county.upcase}" unless county.blank?
address += " #{postcode.upcase}"
address += "#{nl}#{country.upcase}"
elsif country == "Finland"
address = "#{name}"
address += "#{nl}#{addr1}"
address += "#{nl}#{addr2}" unless addr2.blank?
address += "#{nl}#{county}" unless county.blank?
address += "#{nl}#{postcode} #{city.upcase}" # 00180 HELSINKI
address += "#{nl}#{country.upcase}"
elsif country == "France" # everything uppercase except name
address = "#{name}"
address += "#{nl}#{addr1.upcase}"
address += "#{nl}#{addr2.upcase}" unless addr2.blank?
address += "#{nl}#{county.upcase}" unless county.blank?
address += "#{nl}#{postcode} #{city.upcase}" # 14390 CABOURG
address += "#{nl}#{country.upcase}"
elsif country == "Germany"
address = "#{name}"
address += "#{nl}#{addr1}"
address += "#{nl}#{addr2}" unless addr2.blank?
address += "#{nl}#{county}" unless county.blank?
address += "#{nl}#{postcode} #{city}" # 32547 Bad Oyenhausen
address += "#{nl}#{country.upcase}"
elsif country == "Ireland" # everything uppercase except name
address = "#{name}"
address += "#{nl}#{addr1.upcase}"
address += "#{nl}#{addr2.upcase}" unless addr2.blank?
address += "#{nl}#{county.upcase}" unless county.blank?
address += "#{nl}#{city.upcase} #{postcode}" # DUBLIN 2
address += "#{nl}#{country.upcase}"
elsif country == "New Zealand"
address = "#{name}"
address += "#{nl}#{addr1}"
address += "#{nl}#{addr2}" unless addr2.blank?
address += "#{nl}#{county}" unless county.blank?
address += "#{nl}" # Wellington 6004
address += " #{city.upcase} " unless city.blank?
address += "#{postcode}"
address += "#{nl}#{country.upcase}"
elsif country == "Singapore"
address = "#{name}"
address += "#{nl}#{addr1}"
address += "#{nl}#{addr2}" unless addr2.blank?
# address += "#{nl}#{city.upcase} " unless city.blank?
# address += "#{nl}#{county)}" unless county.blank?
address += "#{nl}SINGAPORE #{postcode}"
address += "#{nl}REPUBLIC OF SINGAPORE"
elsif country == "United States" # whole address uppercase
address = "#{name.upcase}"
address += "#{nl}#{addr1.upcase}"
address += "#{nl}#{addr2.upcase}" unless addr2.blank?
address += "#{nl}#{city.upcase}" # PHOENIX AZ 85123
address += " #{county.upcase}" unless county.blank?
address += " #{postcode.upcase}"
address += "#{nl}USA" # use USA instead of United States
elsif CountriesList::eu?(country) && country != "United Kingdom"
address = "#{name}"
address += "#{nl}#{addr1}"
address += "#{nl}#{addr2}" unless addr2.blank?
address += "#{nl}#{county}" unless county.blank?
address += "#{nl}#{postcode} #{city.upcase}"
address += "#{nl}#{country.upcase}"
else
address = "#{name}"
address += "#{nl}#{addr1}"
address += "#{nl}#{addr2}" unless addr2.blank?
address += "#{nl}#{city.upcase}" unless city.blank?
address += "#{nl}#{county.upcase}" unless county.blank?
address += "#{nl}#{postcode.upcase}"
address += "#{nl}#{country.upcase}" unless country == "United Kingdom"
end
address
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment