Sha256: f024136b60d75b3b563bbddadfde3294c1514314f5f5cda83c360d37d0285bc2
Contents?: true
Size: 728 Bytes
Versions: 2
Compression:
Stored size: 728 Bytes
Contents
# frozen_string_literal: true module Schneiderlein class FlyCatcher < Struct.new(:app) PARSE_ERROR_CONSTANT = if Rails.version.to_f < 5.1 ActionDispatch::ParamsParser::ParseError else ActionDispatch::Http::Parameters::ParseError end def call(env) app.call(env) rescue PARSE_ERROR_CONSTANT => e env['rack.schneiderlein.parse_errors'] ||= [] env['rack.schneiderlein.parse_errors'] << e app.call(remove_errors_from(env)) end private def remove_errors_from(env) env['rack.input'] = StringIO.new env['rack.errors'] = StringIO.new env['RAW_POST_DATA'] = '' env['CONTENT_LENGTH'] = '0' env end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
schneiderlein-3.0.0 | lib/schneiderlein/fly_catcher.rb |
schneiderlein-2.0.0 | lib/schneiderlein/fly_catcher.rb |