rack-linkeddata 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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -5,5 +5,23 @@ module Rack
5
5
  module LinkedData
6
6
  autoload :ContentNegotiation, 'rack/linkeddata/conneg'
7
7
  autoload :VERSION, 'rack/linkeddata/version'
8
+
9
+ ##
10
+ # Registers all known RDF formats with Rack's MIME types registry.
11
+ #
12
+ # @param [Hash{Symbol => Object}] options
13
+ # @option options [Boolean] :overwrite (false)
14
+ # @return [void]
15
+ def self.register_mime_types!(options = {})
16
+ if defined?(Rack::Mime::MIME_TYPES)
17
+ RDF::Format.file_extensions.each do |file_ext, content_type|
18
+ if !Rack::Mime::MIME_TYPES.has_key?(file_ext = ".#{file_ext}") || options[:overwrite]
19
+ Rack::Mime::MIME_TYPES.merge!(file_ext => content_type.to_s)
20
+ end
21
+ end
22
+ end
23
+ end
8
24
  end
9
25
  end
26
+
27
+ Rack::LinkedData.register_mime_types!
@@ -51,11 +51,15 @@ module Rack; module LinkedData
51
51
  # @param [RDF::Enumerable] body
52
52
  # @return [Array(Integer, Hash, #each)]
53
53
  def serialize(env, status, headers, body)
54
- writer, content_type = find_writer(env)
55
- if writer
56
- headers = headers.merge(VARY).merge('Content-Type' => content_type) # FIXME: don't overwrite existing Vary headers
57
- [status, headers, [writer.dump(body)]]
58
- else
54
+ begin
55
+ writer, content_type = find_writer(env)
56
+ if writer
57
+ headers = headers.merge(VARY).merge('Content-Type' => content_type) # FIXME: don't overwrite existing Vary headers
58
+ [status, headers, [writer.dump(body)]]
59
+ else
60
+ not_acceptable
61
+ end
62
+ rescue RDF::WriterError => e
59
63
  not_acceptable
60
64
  end
61
65
  end
@@ -2,11 +2,10 @@ module Rack; module LinkedData
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 1
5
+ TINY = 2
6
6
  EXTRA = nil
7
7
 
8
- STRING = [MAJOR, MINOR, TINY].join('.')
9
- STRING << ".#{EXTRA}" if EXTRA
8
+ STRING = [MAJOR, MINOR, TINY, EXTRA].compact.join('.')
10
9
 
11
10
  ##
12
11
  # @return [String]
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Datagraph
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-27 00:00:00 +02:00
17
+ date: 2010-06-04 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency