Class: DiffTest::Integrations::RailsJs::Middleware
- Inherits:
-
Object
- Object
- DiffTest::Integrations::RailsJs::Middleware
- Defined in:
- lib/diff_test/integrations/rails_js/middleware.rb
Instance Method Summary collapse
- #_call(env) ⇒ Object
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Middleware
constructor
A new instance of Middleware.
Constructor Details
#initialize(app) ⇒ Middleware
Returns a new instance of Middleware.
8 9 10 |
# File 'lib/diff_test/integrations/rails_js/middleware.rb', line 8 def initialize(app) @app = app end |
Instance Method Details
#_call(env) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/diff_test/integrations/rails_js/middleware.rb', line 16 def _call(env) path = env['PATH_INFO'] || '' if path.include?('__diff_test_js_beacon') body = env['rack.input'].read json = JSON.parse(body) json['file_paths'].each do |file_path| DiffTest::Trackers::JsFile.record_by_test_id(json['test_id'], file_path) end [204, {}, []] else env.delete('HTTP_IF_NONE_MATCH') env.delete('HTTP_IF_MODIFIED_SINCE') status, headers, body = result = @app.call(env) return result if ProcessingSkipAnalyzer.skip_processing?(result, env, @options) processor = BodyProcessor.new(body, @options) processor.process!(env) headers['content-length'] = processor.content_length.to_s [status, headers, processor.new_body] end end |
#call(env) ⇒ Object
12 13 14 |
# File 'lib/diff_test/integrations/rails_js/middleware.rb', line 12 def call(env) dup._call(env) end |