ons_openapi 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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