ons_openapi 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7478d7a40489fbc9f28fb75fff66c252dafdecc4
4
- data.tar.gz: 6635ce15b7e02d542703ec04265d77486dd44d6c
3
+ metadata.gz: 9e9b0ecd250e85250822dd7168ec4ea3e672f570
4
+ data.tar.gz: d80fa1a605559bcc970c3fa52650e0651c7b091a
5
5
  SHA512:
6
- metadata.gz: 8a50990151e4ce9c4312bad08388caf5031c712f2dafff8ad4c823eadc4bb67e138010bcb2996f650ff9c3edb0e4e36652c8738573fb125a0223b3ba72aabe95
7
- data.tar.gz: d4c57a354e13b6674527d8eaf16b42204447eb1ba4e95fa12195b2dbe78c08a38f9e8cda98af8eb550d87e2c72b895eefe199d3d38eb28e7d75ffe789abdae8e
6
+ metadata.gz: 695be3534ff8af36cbdfcfcb011925dacacdb14c2b82d080857620a5a56d42b28b5d7f88a3e4d7770ee506245b01e92a5c8f92255abd3189c5e256fade3dac73
7
+ data.tar.gz: 9414cda40c2b2098ad4e980fd274f8ef08baaecfbcdd1cac157d914e911c64c075760157816eaf4a18c354364d3d4868a154bdf32ea5922d4f1752af5ee310f3
data/lib/ons_openapi.rb CHANGED
@@ -29,7 +29,7 @@ require 'open-uri'
29
29
  # See README for usage documentation.
30
30
  module OnsOpenApi
31
31
 
32
- VERSION = "0.1.1" unless defined? OnsOpenApi::VERSION
32
+ VERSION = "0.1.2" unless defined? OnsOpenApi::VERSION
33
33
 
34
34
  class << self
35
35
 
@@ -62,4 +62,3 @@ require File.dirname(__FILE__) + '/ons_openapi/dimension'
62
62
  require File.dirname(__FILE__) + '/ons_openapi/value'
63
63
  require File.dirname(__FILE__) + '/ons_openapi/geographical_hierarchy'
64
64
  require File.dirname(__FILE__) + '/ons_openapi/item'
65
-
@@ -11,6 +11,7 @@ class OnsOpenApi::Collection
11
11
  # Returns data as array of arrays, for a geography that matches label_or_code.
12
12
  # e.g. data_for('England'), data_for('Islington S'), data_for('E05002040')
13
13
  # Raises exception if no match or more than one match.
14
+ #
14
15
  def data_for label_or_code
15
16
  if geographies = geography(label_or_code)
16
17
  if geographies.size > 1
@@ -65,12 +66,14 @@ class OnsOpenApi::Collection
65
66
  # collection.
66
67
  #
67
68
  # e.g.
68
- # 2011WARDH - 2011 Administrative Hierarchy
69
69
  # 2011STATH - 2011 Statistical Geography Hierarchy
70
- # 2011PCONH - 2011 Westminster Parliamentary Constituency Hierarchy
71
- # 2011HTWARDH - 2011 Census Merged Ward Hierarchy
72
- # 2011CMLADH - 2011 Census merged local authority district hierarchy
70
+ # 2014WARDH - 2014 Administrative Hierarchy
71
+ # 2011WARDH - 2011 Administrative Hierarchy
73
72
  # 2011PARISH - 2011 Parish Hierarchy
73
+ # 2011PCONH - 2011 Westminster Parliamentary Constituency Hierarchy
74
+ # 2011NAWH - 2011 National Assembley for Wales Electoral Hierarchy
75
+ # 2013HEALTHH - 2013 Health Area Hierarchy
76
+ # 2011BUAH - 2011 Built-up area hierarchy
74
77
  #
75
78
  def geography_codes
76
79
  gh ||= geographical_hierarchies
@@ -59,42 +59,56 @@ class OnsOpenApi::Context
59
59
 
60
60
  # Returns geography objects for given geography code.
61
61
  #
62
- # Parameter +code+ defaults to +'2011WARDH'+ for the 2011 Administrative
62
+ # Parameter +code+ defaults to +'2014WARDH'+ for the 2014 Administrative
63
63
  # Hierarchy, if no +code+ supplied.
64
64
  #
65
+ # Option +levels+ defaults to +'0,1,2,3,4,5,6,7'+. You can specify levels,
66
+ # e.g. geographies('2011WARDH', levels: '0,1,2,3,4,5')
67
+ #
65
68
  # Codes include:
66
69
  # +2011WARDH+ - 2011 Administrative Hierarchy
70
+ # +2012WARDH+ - 2012 Administrative Hierarchy
71
+ # +2013WARDH+ - 2013 Administrative Hierarchy
72
+ # +2014WARDH+ - 2014 Administrative Hierarchy
67
73
  # +2011STATH+ - 2011 Statistical Geography Hierarchy
68
74
  # +2011PCONH+ - 2011 Westminster Parliamentary Constituency Hierarchy
69
75
  # +2011HTWARDH+ - 2011 Census Merged Ward Hierarchy
70
76
  # +2011CMLADH+ - 2011 Census merged local authority district hierarchy
71
77
  # +2011PARISH+ - 2011 Parish Hierarchy
72
- def geographies code='2011WARDH'
78
+ def geographies code='2011WARDH', option={ levels: '0,1,2,3,4,5,6,7' }
73
79
  @geographies ||= {}
74
- unless @geographies[code]
75
- params = { context: @name }
76
-
77
- if code == '2011STATH'
78
- params.merge!({ levels: '0,1,2,3,4,5' }) # restrict levels to reduce delay
79
- end
80
-
80
+ levels = if code == '2011STATH' && option[:levels][/6|7|8|9/] # restrict levels to reduce delay
81
+ '0,1,2,3,4,5'
82
+ else # hierarchies require levels param be set
83
+ option[:levels]
84
+ end
85
+
86
+ key = [code, levels].join('-')
87
+ unless @geographies[key]
88
+ params = { context: @name, levels: levels }
81
89
  result = OnsOpenApi::get "hierarchies/hierarchy/#{code}", params
82
- @geographies[code] = result.geography_list.items.items
90
+ @geographies[key] = result.geography_list.items.items
83
91
  end
84
- @geographies[code].each {|g| g.geography_code = code }
85
- @geographies[code]
92
+ @geographies[key].each {|g| g.geography_code = code }
93
+ @geographies[key]
86
94
  end
87
95
 
88
- # Returns geography objects from the 2011 Administrative Hierarchy
89
- # with area type 'Electoral Division'
90
- def electoral_divisions
91
- geographies('2011WARDH').select {|z| z.area_type.codename['Electoral Division']}
96
+ # Returns geography objects from the given Administrative Hierarchy
97
+ # with area type 'Electoral Division'.
98
+ #
99
+ # Parameter +code+ defaults to +'2014WARDH'+ for the 2014 Administrative
100
+ # Hierarchy, if no +code+ supplied.
101
+ def electoral_divisions code='2014WARDH'
102
+ geographies(code).select {|z| z.area_type.codename['Electoral Division']}
92
103
  end
93
104
 
94
- # Returns geography objects from the 2011 Administrative Hierarchy
105
+ # Returns geography objects from the given Administrative Hierarchy
95
106
  # with area type 'Electoral Ward/Division'
96
- def electoral_wards
97
- geographies('2011WARDH').select {|z| z.area_type.codename['Electoral Ward/Division']}
107
+ #
108
+ # Parameter +code+ defaults to +'2014WARDH'+ for the 2014 Administrative
109
+ # Hierarchy, if no +code+ supplied.
110
+ def electoral_wards code='2014WARDH'
111
+ geographies(code).select {|z| z.area_type.codename['Electoral Ward/Division']}
98
112
  end
99
113
 
100
114
  private
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ons_openapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob McKinnon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-17 00:00:00.000000000 Z
11
+ date: 2016-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: morph
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.3'
19
+ version: '0.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.3'
26
+ version: '0.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: execjs
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '2.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.5'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.5'
69
69
  description: Ruby wrapper around the ONS OpenAPI making easy to quickly retrieve data.
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  version: '0'
114
114
  requirements: []
115
115
  rubyforge_project:
116
- rubygems_version: 2.2.2
116
+ rubygems_version: 2.6.4
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: Ruby wrapper around the ONS OpenAPI - the UK Office of National Statistics's