module Firstclasspostcodes::Operations::Methods::FormatAddress
Public Instance Methods
format_address(index)
click to toggle source
# File lib/firstclasspostcodes/operations/methods/format_address.rb, line 7 def format_address(index) type, element = index.split(":") data = { locality: self[:city] || self[:locality], region: self[:county] || self[:region], postcode: self[:postcode], country: self[:country], } return data if type == "postcode" list = self[type.to_sym] index = element.to_i raise StandardError, `Received index "#{index}" but no #{type} data.` if list.empty? address = if type == "numbers" component = list[index] join = ->(*args) { args.compact.reject(&:empty?).join(", ") } join.call(component[:number], component[:building], component[:street]) else list[index] end data.merge(address: address) end