Sha256: f367a1db627521eb6c00de6a152989eabbecbf9d528810c6089501fb8cb8b23f

Contents?: true

Size: 993 Bytes

Versions: 8

Compression:

Stored size: 993 Bytes

Contents

require 'fluoride-collector/middleware'
module Fluoride
  module Collector
    class Middleware
      class CollectExchanges < Middleware
        def call(env)
          @app.call(env).tap do |response|
            store( clean_hash(
              "type" => "normal_exchange",
              "tags" => @tagging,
              "request" => request_hash(env),
              "response" => response_hash(response)
            ))
          end
        end

        private

        def collection_type
          :exchange
        end

        def extract_body(body)
          array = []
          body.each do |chunk|
            array << chunk
          end
          body.rewind if body.respond_to?(:rewind)
          array
        end

        def response_hash(response)
          status, headers, body = *response

          {
            "status" => status,
            "headers" => headers.to_hash,
            "body" => extract_body(body)
          }
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fluoride-collector-0.0.11 lib/fluoride-collector/middleware/collect-exchanges.rb
fluoride-collector-0.0.10 lib/fluoride-collector/middleware/collect-exchanges.rb
fluoride-collector-0.0.9 lib/fluoride-collector/middleware/collect-exchanges.rb
fluoride-collector-0.0.8 lib/fluoride-collector/middleware/collect-exchanges.rb
fluoride-collector-0.0.7 lib/fluoride-collector/middleware/collect-exchanges.rb
fluoride-collector-0.0.6 lib/fluoride-collector/middleware/collect-exchanges.rb
fluoride-collector-0.0.5 lib/fluoride-collector/middleware/collect-exchanges.rb
fluoride-collector-0.0.4 lib/fluoride-collector/middleware/collect-exchanges.rb