1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
# frozen_string_literal: true
module Grape
module Parser
extend Util::Registrable
class << self
def builtin_parsers
@builtin_parsers ||= {
json: Grape::Parser::Json,
jsonapi: Grape::Parser::Json,
xml: Grape::Parser::Xml
}
end
def parsers(**options)
builtin_parsers.merge(default_elements).merge!(options[:parsers] || {})
end
def parser_for(api_format, **options)
spec = parsers(**options)[api_format]
case spec
when nil
nil
when Symbol
method(spec)
else
spec
end
end
end
end
end
|