Module: Praxis::ContentTypeParser
- Defined in:
- lib/praxis/content_type_parser.rb
Constant Summary collapse
- REGEXP =
/^ \s* (?<type>[^+;\s]+) (\+(?<sub_type>[^;\s]+))? (\s*;\s*)? (?<params>.*?)? (\s*;\s*)? $/x
Class Method Summary collapse
-
.parse(content_type) ⇒ Hash
Parses Content type.
Class Method Details
.parse(content_type) ⇒ Hash
Parses Content type
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/praxis/content_type_parser.rb', line 41 def self.parse(content_type) parsed = REGEXP.match(content_type.to_s) raise(ArgumentError, 'Content type does not have any type defined') unless parsed result = { type: parsed[:type] } result[:sub_type] = parsed[:sub_type] if parsed[:sub_type] if parsed[:params] params = {} parsed[:params].split(';').each do |param| key, value = param.split('=') key = key.to_s.strip next if key.empty? params[key.strip] = value && value.strip end result[:params] = params unless params.empty? end result end |