Class: ParsingUtils::Parser
- Inherits:
-
Object
- Object
- ParsingUtils::Parser
- Defined in:
- lib/parsing_utils.rb
Overview
Usage
Parser.add(JSONParser, "application/json", "application/vnd.com.example.Object+json")
Constant Summary collapse
- @@available_parsers =
FIXME: A bit ugly
[]
Class Method Summary collapse
Class Method Details
.add(parser, *mime_types) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/parsing_utils.rb', line 13 def add(parser, *mime_types) parser.dependencies parser.supported_mime_types = [mime_types, parser.default_mime_type].flatten.compact.uniq @@available_parsers << parser self end |
.available_parsers ⇒ Object
12 |
# File 'lib/parsing_utils.rb', line 12 def available_parsers; @@available_parsers; end |
.select(mime_type) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/parsing_utils.rb', line 19 def select(mime_type) raise UnsupportedFormat, "The content_type cannot be nil." if mime_type.nil? parsers = available_parsers.select{|parser| parser.supported_mime_types.include?(mime_type)} if parsers.empty? raise UnsupportedFormat, "No parser found for '#{mime_type}' content type." else parsers.first end end |