rdf 3.0.7 → 3.0.9

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
  SHA256:
3
- metadata.gz: 89ccba084245d1b67ae3fd9c41ca51e6ccaeb9f9ac508133d4a238e4d1546ddc
4
- data.tar.gz: 0d7f8361c4d17f04210d49fe5c939dc2d2ee93b908ec61e4c5259d73a2090545
3
+ metadata.gz: 42d123aacfde151f76648a3593e62fb0821441c67cf8668983becd2b1800ef41
4
+ data.tar.gz: 42ecb0370f71b7487f0255af21a8959365138da7c5791c68a3e7aaa2f7a63a2e
5
5
  SHA512:
6
- metadata.gz: 7e110a52bc7dff3fb3639d3c641b597f983afae9a3b597e60a7c61883da1fd4ec319e6092b8309efe08ec88135208798badd424f23760062c0640193746ecf01
7
- data.tar.gz: bb026b0506c0b1755bd8c7fa989631685362b4217ddbee9af8c4e338a19d78b8f03ffd8721fc57b43d49ca20fcd1e2633614cd605aab58aa73f63cb2995f5255
6
+ metadata.gz: 22b1e9556b6327e9e8aaaa0f244ffc04565d9c9ef7d075d14f5636672596c40fbb544d49c1bafcc11f2bf90799f85c2ae2fbfb8afbcc6148e5ee357e2d5cde22
7
+ data.tar.gz: d86ba20c17b43f887fc5609897cc24814ccf75c2bb4f0d0a8dd5a164e531e55442960e9733792aad628075b811b31f066e18182b8864bdfa0287317280417630
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.7
1
+ 3.0.9
@@ -348,9 +348,13 @@ module RDF; module Util
348
348
  attr_reader :content_type
349
349
 
350
350
  # Encoding of resource (from Content-Type), downcased. Also applied to content if it is UTF
351
- # @return [String}]
351
+ # @return [String]
352
352
  attr_reader :charset
353
353
 
354
+ # Parameters from Content-Type
355
+ # @return {Symbol => String}]
356
+ attr_reader :parameters
357
+
354
358
  # Response code
355
359
  # @return [Integer]
356
360
  attr_reader :code
@@ -385,8 +389,9 @@ module RDF; module Util
385
389
  end
386
390
  @headers = options.fetch(:headers, {})
387
391
  @charset = options[:charset].to_s.downcase if options[:charset]
392
+ @parameters = {}
388
393
 
389
- # Find Content-Type
394
+ # Find Content-Type and extract other parameters
390
395
  if headers[:content_type]
391
396
  ct, *params = headers[:content_type].split(';').map(&:strip)
392
397
  @content_type ||= ct
@@ -394,8 +399,8 @@ module RDF; module Util
394
399
  # Find charset
395
400
  params.each do |param|
396
401
  p, v = param.split('=')
397
- next unless p.downcase == 'charset'
398
- @charset ||= v.sub(/^["']?(.*)["']?$/, '\1').downcase
402
+ @parameters[p.downcase.to_sym] = v.sub(/^["']?([^"']*)["']?$/, '\1')
403
+ @charset ||= @parameters[p.downcase.to_sym].downcase if p.downcase == 'charset'
399
404
  end
400
405
  end
401
406
 
@@ -151,6 +151,22 @@ module RDF
151
151
 
152
152
  class << self
153
153
  alias_method :format_class, :format
154
+
155
+ ##
156
+ # Use parameters from accept-params to determine if the parameters are acceptable to invoke this writer. The `accept_params` will subsequently be provided to the writer instance.
157
+ #
158
+ # @example rejecting a writer based on a profile
159
+ # JSON::LD::Writer.accept?(profile: "http://www.w3.org/ns/json-ld#compacted http://example.org/black-listed")
160
+ # # => false
161
+ #
162
+ # @param [Hash{Symbol => String}] accept_params
163
+ # @yield [accept_params] if a block is given, returns the result of evaluating that block
164
+ # @yieldparam [Hash{Symbol => String}] accept_params
165
+ # @return [Boolean]
166
+ # @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
167
+ def accept?(accept_params)
168
+ block_given? ? yield(accept_params) : true
169
+ end
154
170
  end
155
171
 
156
172
  ##
@@ -257,6 +273,8 @@ module RDF
257
273
  # by all writers)
258
274
  # @option options [Boolean] :unique_bnodes (false)
259
275
  # Use unique {Node} identifiers, defaults to using the identifier which the node was originall initialized with (if any). Implementations should ensure that Nodes are serialized using a unique representation independent of any identifier used when creating the node. See {NTriples::Writer#format_node}
276
+ # @option options [Hash{Symbol => String}] :accept_params
277
+ # Parameters from ACCEPT header entry for the media-range matching this writer.
260
278
  # @yield [writer] `self`
261
279
  # @yieldparam [RDF::Writer] writer
262
280
  # @yieldreturn [void]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.7
4
+ version: 3.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arto Bendiken
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-11-30 00:00:00.000000000 Z
13
+ date: 2019-01-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: link_header
@@ -297,8 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
297
  - !ruby/object:Gem::Version
298
298
  version: '0'
299
299
  requirements: []
300
- rubyforge_project:
301
- rubygems_version: 2.7.6
300
+ rubygems_version: 3.0.1
302
301
  signing_key:
303
302
  specification_version: 4
304
303
  summary: A Ruby library for working with Resource Description Framework (RDF) data.