Module: Firstclasspostcodes::Operations::Methods::ListAddresses

Defined in:
lib/firstclasspostcodes/operations/methods/list_addresses.rb

Instance Method Summary collapse

Instance Method Details

#list_addressesObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/firstclasspostcodes/operations/methods/list_addresses.rb', line 7

def list_addresses
  join = ->(*args) { args.compact.reject(&:empty?).join(", ") }

  suffix = join.call(self[:city] || self[:locality], self[:postcode])

  if self[:numbers]&.any?
    return self[:numbers].each_with_index.map do |number, i|
      %W[numbers:#{i} #{join.call(number[:number], number[:building], number[:street], suffix)}]
    end
  end

  if self[:streets]&.any?
    return self[:streets].each_with_index.map do |street, i|
      %W[streets:#{i} #{join.call(street, suffix)}]
    end
  end

  [%W[postcode:0 #{suffix}]]
end