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 +4 -4
- data/lib/ons_openapi.rb +1 -2
- data/lib/ons_openapi/collection.rb +7 -4
- data/lib/ons_openapi/context.rb +33 -19
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e9b0ecd250e85250822dd7168ec4ea3e672f570
|
4
|
+
data.tar.gz: d80fa1a605559bcc970c3fa52650e0651c7b091a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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
|
-
#
|
71
|
-
#
|
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
|
data/lib/ons_openapi/context.rb
CHANGED
@@ -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 +'
|
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
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
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[
|
90
|
+
@geographies[key] = result.geography_list.items.items
|
83
91
|
end
|
84
|
-
@geographies[
|
85
|
-
@geographies[
|
92
|
+
@geographies[key].each {|g| g.geography_code = code }
|
93
|
+
@geographies[key]
|
86
94
|
end
|
87
95
|
|
88
|
-
# Returns geography objects from the
|
89
|
-
# with area type 'Electoral Division'
|
90
|
-
|
91
|
-
|
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
|
105
|
+
# Returns geography objects from the given Administrative Hierarchy
|
95
106
|
# with area type 'Electoral Ward/Division'
|
96
|
-
|
97
|
-
|
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.
|
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:
|
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.
|
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.
|
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.
|
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
|