Created
September 14, 2011 13:39
-
-
Save jgarlick/1216566 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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