module Hanami::Middleware::BodyParser::ClassInterface
@api private @since 1.3.0
Constants
- PARSER_METHODS
@api private @since 1.3.0
Public Instance Methods
for(parser)
click to toggle source
@api private @since 1.3.0
# File lib/hanami/middleware/body_parser/class_interface.rb, line 13 def for(parser) parser = case parser when String, Symbol require_parser(parser) when Class parser.new else parser end ensure_parser parser parser end
Private Instance Methods
ensure_parser(parser)
click to toggle source
@api private @since 1.3.0
# File lib/hanami/middleware/body_parser/class_interface.rb, line 37 def ensure_parser(parser) unless PARSER_METHODS.all? { |method| parser.respond_to?(method) } raise InvalidParserError.new(parser) end end
require_parser(parser)
click to toggle source
@api private @since 1.3.0
# File lib/hanami/middleware/body_parser/class_interface.rb, line 45 def require_parser(parser) require "hanami/middleware/body_parser/#{parser}_parser" parser = Utils::String.classify(parser) Utils::Class.load!("Hanami::Middleware::BodyParser::#{parser}Parser").new rescue LoadError, NameError raise UnknownParserError.new(parser) end