parliament-utils 0.7.0 → 0.7.1
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/parliament/utils/config/initializers/mime_types.rb +5 -8
- data/lib/parliament/utils/helpers/application_helper.rb +51 -5
- data/lib/parliament/utils/helpers.rb +0 -1
- data/lib/parliament/utils/version.rb +1 -1
- metadata +2 -3
- data/lib/parliament/utils/helpers/format_helper.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 871a37fca2da71b9bfc844d0f0bfe43d4aadd852
|
4
|
+
data.tar.gz: 66d8d17514fef3ad370fd90a1008b0e6f1dcc63a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a58fc72377b9b4fb8988c549c3cf3f716b14e00b47d9a356c0e72d677587ca888b2dd4bf324237335ced4926a80e18ed691abe36a49cdf0a7876bb31a3bb6bef
|
7
|
+
data.tar.gz: d9cfa7367b95145edf62f4ea9048075a333b11c74ae52fa245b3374b6f1b9f6b8bf27131a6815e55fa138b5bcbfab7766f4be5e2ae2030c0d0ed35632a04fa5c
|
@@ -3,12 +3,9 @@
|
|
3
3
|
# Add new mime types for use in respond_to blocks:
|
4
4
|
# Mime::Type.register "text/richtext", :rtf
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
Mime::Type.register 'application/sparql-results+json', :srj
|
10
|
-
Mime::Type.register 'text/tab-separated-values', :tsv
|
11
|
-
Mime::Type.register 'text/vnd.graphviz', :gv, [], [:dot]
|
12
|
-
Mime::Type.register 'application/rdf+xml', :rdf, [], [:rdfxml]
|
13
|
-
Mime::Type.register 'application/rdf+ld', :jsonld
|
6
|
+
Parliament::Utils::Helpers::ApplicationHelper::API_MIME_TYPE_CONFIG.each do |mime_type|
|
7
|
+
primary = mime_type.shift
|
8
|
+
alternatives = mime_type
|
14
9
|
|
10
|
+
Mime::Type.register primary[1], primary[0], alternatives.values, alternatives.keys
|
11
|
+
end
|
@@ -2,6 +2,54 @@ module Parliament
|
|
2
2
|
module Utils
|
3
3
|
module Helpers
|
4
4
|
module ApplicationHelper
|
5
|
+
# What MIME types does the API accept?
|
6
|
+
#
|
7
|
+
# Note: All of the below are used to generate MIME types that our application will answer to, but NOT the
|
8
|
+
# alternatives shown in our header. See ALTERNATIVE_MIME_TYPE_CONFIG.
|
9
|
+
API_MIME_TYPE_CONFIG = [
|
10
|
+
{
|
11
|
+
nt: 'application/n-triples'
|
12
|
+
},
|
13
|
+
{
|
14
|
+
ttl: 'text/turtle'
|
15
|
+
},
|
16
|
+
{
|
17
|
+
tsv: 'text/tab-separated-values'
|
18
|
+
},
|
19
|
+
{
|
20
|
+
csv: 'text/csv'
|
21
|
+
},
|
22
|
+
{
|
23
|
+
rj: 'application/json+rdf'
|
24
|
+
},
|
25
|
+
{
|
26
|
+
jsonld: 'application/json+ld',
|
27
|
+
json: 'application/json'
|
28
|
+
},
|
29
|
+
{
|
30
|
+
rdfxml: 'application/rdf+xml',
|
31
|
+
rdf: 'application/xml',
|
32
|
+
xml: 'text/xml'
|
33
|
+
}
|
34
|
+
].freeze
|
35
|
+
|
36
|
+
# Use the above, minus the last two entries (json & xml), to build an alternative URL list.
|
37
|
+
# Then re-create JSON and XML with the correct alternatives
|
38
|
+
ALTERNATIVE_MIME_TYPE_CONFIG = API_MIME_TYPE_CONFIG.take(API_MIME_TYPE_CONFIG.size-2).concat(
|
39
|
+
[
|
40
|
+
{
|
41
|
+
json: 'application/json+ld'
|
42
|
+
},
|
43
|
+
{
|
44
|
+
xml: 'application/rdf+xml'
|
45
|
+
}
|
46
|
+
]
|
47
|
+
)
|
48
|
+
|
49
|
+
API_MIME_TYPES = Parliament::Utils::Helpers::ApplicationHelper::API_MIME_TYPE_CONFIG.map { |mime_type| mime_type.values }.flatten.freeze
|
50
|
+
API_FILE_EXTENSIONS = Parliament::Utils::Helpers::ApplicationHelper::API_MIME_TYPE_CONFIG.map { |mime_type| mime_type.keys }.flatten.freeze
|
51
|
+
ALTERNATIVE_MIME_TYPES_FLATTENED = Parliament::Utils::Helpers::ApplicationHelper::ALTERNATIVE_MIME_TYPE_CONFIG.reduce(:merge)
|
52
|
+
|
5
53
|
# Sets the title for a page.
|
6
54
|
#
|
7
55
|
# @param [String] page_title the title of the page.
|
@@ -15,7 +63,7 @@ module Parliament
|
|
15
63
|
def data_check
|
16
64
|
# Check format to see if it is available from the data API
|
17
65
|
# We DO NOT offer data formats for constituency maps
|
18
|
-
return if !
|
66
|
+
return if !API_MIME_TYPES.include?(request.formats.first) || (params[:controller] == 'constituencies' && params[:action] == 'map')
|
19
67
|
|
20
68
|
# Find the current controller/action's API url
|
21
69
|
@data_url = data_url
|
@@ -58,12 +106,10 @@ module Parliament
|
|
58
106
|
def populate_alternates(url)
|
59
107
|
alternates = []
|
60
108
|
|
61
|
-
|
109
|
+
ALTERNATIVE_MIME_TYPES_FLATTENED.each do |extension, format| # (key, value)
|
62
110
|
uri = URI.parse(url)
|
111
|
+
uri.path = "#{uri.path}.#{extension}"
|
63
112
|
|
64
|
-
uri_form = URI.decode_www_form(String(uri.query)) << ['format',format]
|
65
|
-
|
66
|
-
uri.query = URI.encode_www_form(uri_form)
|
67
113
|
alternates << { type: format, href: uri.to_s }
|
68
114
|
end
|
69
115
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require_relative './helpers/application_helper'
|
2
2
|
require_relative './helpers/flag_helper'
|
3
|
-
require_relative './helpers/format_helper'
|
4
3
|
require_relative './helpers/houses_helper'
|
5
4
|
require_relative './helpers/parliament_helper'
|
6
5
|
require_relative './helpers/postcode_helper'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parliament-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rebecca Appleyard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parliament-ruby
|
@@ -292,7 +292,6 @@ files:
|
|
292
292
|
- lib/parliament/utils/helpers/application_helper.rb
|
293
293
|
- lib/parliament/utils/helpers/filter_helper.rb
|
294
294
|
- lib/parliament/utils/helpers/flag_helper.rb
|
295
|
-
- lib/parliament/utils/helpers/format_helper.rb
|
296
295
|
- lib/parliament/utils/helpers/houses_helper.rb
|
297
296
|
- lib/parliament/utils/helpers/parliament_helper.rb
|
298
297
|
- lib/parliament/utils/helpers/postcode_helper.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Parliament
|
2
|
-
module Utils
|
3
|
-
module Helpers
|
4
|
-
module FormatHelper
|
5
|
-
DATA_FORMATS = %w(
|
6
|
-
application/n-triples
|
7
|
-
text/turtle
|
8
|
-
application/sparql-results+xml
|
9
|
-
application/sparql-results+json
|
10
|
-
text/csv
|
11
|
-
text/tab-separated-values
|
12
|
-
text/vnd.graphviz
|
13
|
-
application/rdf+xml
|
14
|
-
application/xml
|
15
|
-
application/json+ld
|
16
|
-
application/json
|
17
|
-
).freeze
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|