class PostcodeInfo::Postcode
Attributes
as_given[R]
these attributes are set on construction
client[RW]
normalised[R]
these attributes are set on construction
Public Class Methods
new(given_postcode, client)
click to toggle source
these attributes require lookups attr_reader :latitude, :longitude, :addresses, :local_authority
# File lib/postcodeinfo/postcode.rb, line 9 def initialize(given_postcode, client) @as_given = given_postcode @normalised = self.class.normalise(@as_given) @client = client @info = nil end
normalise(postcode)
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 16 def self.normalise(postcode) postcode.downcase.gsub(/[^a-z0-9]/, '') end
Public Instance Methods
addresses()
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 40 def addresses @addresses ||= @client.addresses(@normalised) end
Also aliased as: lookup_addresses!
country()
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 35 def country lookup_info! if @info.nil? @country end
latitude()
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 20 def latitude lookup_info! if @info.nil? @latitude end
longitude()
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 25 def longitude lookup_info! if @info.nil? @longitude end
lookup_info!()
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 49 def lookup_info! @info = @client.info(@normalised) parse_info! end
valid?()
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 45 def valid? @valid ||= @client.valid?(@normalised) end
Protected Instance Methods
parse_info!()
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 64 def parse_info! set_coordinates!(@info) @local_authority = @info[:local_authority] @country = @info[:country] @valid = true end
set_coordinates!(info)
click to toggle source
# File lib/postcodeinfo/postcode.rb, line 57 def set_coordinates!(info) if info[:centre] @latitude = info[:centre][:coordinates][0] @longitude = info[:centre][:coordinates][1] end end