rack-linkeddata 2.2.1 → 2.2.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: c6f256b9f4c6c2ca900800412440bfe3c4fe2109
4
- data.tar.gz: 42dddfa7e2be4edfc3e023bcdffcdd4949dcee40
3
+ metadata.gz: b1c9a0ddbc3a23ee37f6aefc9ba4adde4671181e
4
+ data.tar.gz: 14c2fbc74dfc76f243292eb7763b30ec4e3b23cb
5
5
  SHA512:
6
- metadata.gz: a309c4379b535569527cfd056707b93a37f42dbbeb82f1a78e18d3d05e105bffa7007b9a2b09147d84df6f34d4f4d476b6e8adc04ee74083bbfe1a6614ef23e7
7
- data.tar.gz: 2cd8c4237b8068a5ba950b9681d7f5860da93e588e0f3424711b3e293300ae1d72ecad835e6ede5ba9ebb1c79a167a1209ef038e7b103f89f801523c5c505da5
6
+ metadata.gz: 6270b177a3a3c72b8a28208c23ee207cd350da68cdff0ba3e5a0824df80bfcd0ed549a271ef4a845522f964396c136e4e2584dc5f3ab62253105557135ecec1e
7
+ data.tar.gz: 699e48429e41637e23cdea4d532ba6b8cb933755c80550465bbb69de5a276e2884e984dc67385c004d8e8123b55a5d02976565e8eea2b039b4d79ad3ca61fc3f
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.2.1
1
+ 2.2.2
@@ -119,14 +119,7 @@ module Rack; module LinkedData
119
119
  # @param [String, #to_s] content_type
120
120
  # @return [Array(Class, String)]
121
121
  def find_writer_for_content_type(content_type)
122
- writer = case content_type.to_s
123
- when '*/*'
124
- RDF::Writer.for(:content_type => (content_type = options[:default]))
125
- when /^([^\/]+)\/\*$/
126
- nil # TODO: match subtype wildcards
127
- else
128
- RDF::Writer.for(:content_type => content_type)
129
- end
122
+ writer = RDF::Writer.for(content_type: content_type) if content_type
130
123
  writer ? [writer, content_type] : nil
131
124
  end
132
125
 
@@ -141,7 +134,8 @@ module Rack; module LinkedData
141
134
  # @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
142
135
  def parse_accept_header(header)
143
136
  entries = header.to_s.split(',')
144
- entries.map { |e| accept_entry(e) }.sort_by(&:last).map(&:first)
137
+ entries = entries.map { |e| accept_entry(e) }.sort_by(&:last).map(&:first)
138
+ entries.map { |e| find_content_type_for_media_range(e) }
145
139
  end
146
140
 
147
141
  def accept_entry(entry)
@@ -151,6 +145,32 @@ module Rack; module LinkedData
151
145
  [type, [quality, type.count('*'), 1 - options.size]]
152
146
  end
153
147
 
148
+ ##
149
+ # Returns a content type appropriate for the given `media_range`,
150
+ # returns `nil` if `media_range` contains a wildcard subtype
151
+ # that is not mapped.
152
+ #
153
+ # @param [String, #to_s] media_range
154
+ # @return [String, nil]
155
+ def find_content_type_for_media_range(media_range)
156
+ case media_range.to_s
157
+ when '*/*'
158
+ options[:default]
159
+ when 'text/*'
160
+ 'text/turtle'
161
+ when 'application/*'
162
+ 'application/ld+json'
163
+ when 'application/json'
164
+ 'application/ld+json'
165
+ when 'application/xml'
166
+ 'application/rdf+xml'
167
+ when /^([^\/]+)\/\*$/
168
+ nil
169
+ else
170
+ media_range.to_s
171
+ end
172
+ end
173
+
154
174
  ##
155
175
  # Outputs an HTTP `406 Not Acceptable` response.
156
176
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-linkeddata
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arto Bendiken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-24 00:00:00.000000000 Z
11
+ date: 2017-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkeddata
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '2.2'
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: '2.0'
26
+ version: '2.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rack
29
29
  requirement: !ruby/object:Gem::Requirement