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 +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
|