Module: MySociety::MapIt::LocalAuthorityFinder

Included in:
Point, Postcode
Defined in:
lib/my_society/map_it.rb

Constant Summary collapse

DISTRICT_TYPE_CODES =
%w(
  DIS LGD
).freeze
UNITARY_TYPE_CODES =
%w(
  UTA MTD LBO COI
).freeze
COUNTY_TYPE_CODES =
%w(
  CTY
).freeze
COUNTY_WARD_TYPE_CODES =
%w(
  CED
)
PARISH_TYPE_CODES =
%w(
  CPC COP
)
WARD_TYPE_CODES =
%w(
  DIW LBW LGW MTW UTW
)

Instance Method Summary collapse

Instance Method Details

#countyObject



53
54
55
56
# File 'lib/my_society/map_it.rb', line 53

def county
  return if district.nil?
  detect(COUNTY_TYPE_CODES)
end

#county_wardObject



58
59
60
61
# File 'lib/my_society/map_it.rb', line 58

def county_ward
  return if county.nil?
  detect(COUNTY_WARD_TYPE_CODES)
end

#detect(type) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
# File 'lib/my_society/map_it.rb', line 84

def detect(type)
  la = to_point.to_hash.values.detect do |la|
   type.include? la['type']
 end
 
 return if la.nil?
 
 LocalAuthority.new la
rescue
  nil
end

#districtObject



45
46
47
# File 'lib/my_society/map_it.rb', line 45

def district
  detect(DISTRICT_TYPE_CODES)
end

#local_authorityObject



71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/my_society/map_it.rb', line 71

def local_authority
  if district.nil?
    unitary
  else
    {
      :district => district,
      :county   => county
    }
  end
rescue
  nil
end

#parishObject



49
50
51
# File 'lib/my_society/map_it.rb', line 49

def parish
  detect(PARISH_TYPE_CODES)
end

#two_tier?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/my_society/map_it.rb', line 96

def two_tier?
  local_authority.kind_of? Hash
end

#unitaryObject



63
64
65
# File 'lib/my_society/map_it.rb', line 63

def unitary
  detect(UNITARY_TYPE_CODES)
end

#wardObject



67
68
69
# File 'lib/my_society/map_it.rb', line 67

def ward
  detect(WARD_TYPE_CODES)
end