class OnsOpenApi::Context
Public Class Methods
# File lib/ons_openapi/context.rb, line 6 def all @contexts ||= OnsOpenApi::get('contexts').context_list.statistical_contexts.map {|x| new x} end
# File lib/ons_openapi/context.rb, line 11 def initialize x self.id = x.context_id self.name = x.context_name end
Public Instance Methods
# File lib/ons_openapi/context.rb, line 56 def classification_names names_for classifications end
# File lib/ons_openapi/context.rb, line 28 def classifications @classifications ||= OnsOpenApi::get('classifications', context: @name).classification_list.classifications end
# File lib/ons_openapi/context.rb, line 32 def collection id_or_name collection = collections.detect{|c| (c.id == id_or_name || c.title == id_or_name) } unless collection list = collections.select{|c| c.name == id_or_name} if list.size > 1 cmds = list.map{|c| [c.id,c.title]}.flatten.map{|n| "collection('#{n}')"} raise "more than one match, try one of:\n\n #{cmds.join(" \n\n ") }\n\n" else collection = list.first end end collection end
# File lib/ons_openapi/context.rb, line 52 def collection_names names_for collections end
# File lib/ons_openapi/context.rb, line 20 def collections @collections ||= OnsOpenApi::get('collections', context: @name).collection_list.collections unless @collections.first.respond_to?(:context_name) && @collections.first.context_name @collections.each {|c| c.context_name = @name} end @collections end
# File lib/ons_openapi/context.rb, line 48 def concept_names names_for concepts end
# File lib/ons_openapi/context.rb, line 16 def concepts @concepts ||= OnsOpenApi::get('concepts', context: @name).concept_list.concepts end
Returns geography objects from the given Administrative Hierarchy with area type ‘Electoral Division’.
Parameter code
defaults to +‘2014WARDH’+ for the 2014 Administrative Hierarchy, if no code
supplied.
# File lib/ons_openapi/context.rb, line 101 def electoral_divisions code='2014WARDH' geographies(code).select {|z| z.area_type.codename['Electoral Division']} end
Returns geography objects from the given Administrative Hierarchy with area type ‘Electoral Ward/Division’
Parameter code
defaults to +‘2014WARDH’+ for the 2014 Administrative Hierarchy, if no code
supplied.
# File lib/ons_openapi/context.rb, line 110 def electoral_wards code='2014WARDH' geographies(code).select {|z| z.area_type.codename['Electoral Ward/Division']} end
Returns geography objects for given geography code.
Parameter code
defaults to +‘2014WARDH’+ for the 2014 Administrative Hierarchy, if no code
supplied.
Option levels
defaults to +‘0,1,2,3,4,5,6,7’+. You can specify levels, e.g. geographies(‘2011WARDH’, levels: ‘0,1,2,3,4,5’)
Codes include: 2011WARDH
- 2011 Administrative Hierarchy 2012WARDH
- 2012 Administrative Hierarchy 2013WARDH
- 2013 Administrative Hierarchy 2014WARDH
- 2014 Administrative Hierarchy 2011STATH
- 2011 Statistical Geography Hierarchy 2011PCONH
- 2011 Westminster Parliamentary Constituency Hierarchy 2011HTWARDH
- 2011 Census Merged Ward Hierarchy 2011CMLADH
- 2011 Census merged local authority district hierarchy 2011PARISH
- 2011 Parish Hierarchy
# File lib/ons_openapi/context.rb, line 78 def geographies code='2011WARDH', option={ levels: '0,1,2,3,4,5,6,7' } @geographies ||= {} levels = if code == '2011STATH' && option[:levels][/6|7|8|9/] # restrict levels to reduce delay '0,1,2,3,4,5' else # hierarchies require levels param be set option[:levels] end key = [code, levels].join('-') unless @geographies[key] params = { context: @name, levels: levels } result = OnsOpenApi::get "hierarchies/hierarchy/#{code}", params @geographies[key] = result.geography_list.items.items end @geographies[key].each {|g| g.geography_code = code } @geographies[key] end
Private Instance Methods
# File lib/ons_openapi/context.rb, line 116 def names_for list list.map(&:title) end