Sha256: 61cf327972e310c10164d4b54a73fa58261ff96c0e7dd398ed4801f817085dfb

Contents?: true

Size: 860 Bytes

Versions: 86

Compression:

Stored size: 860 Bytes

Contents

module WebSocket
  class Driver

    class Headers
      ALLOWED_DUPLICATES = %w[set-cookie set-cookie2 warning www-authenticate]

      def initialize(received = {})
        @raw = received
        clear

        @received = {}
        @raw.each { |k,v| @received[HTTP.normalize_header(k)] = v }
      end

      def clear
        @sent  = Set.new
        @lines = []
      end

      def [](name)
        @received[HTTP.normalize_header(name)]
      end

      def []=(name, value)
        return if value.nil?
        key = HTTP.normalize_header(name)
        return unless @sent.add?(key) or ALLOWED_DUPLICATES.include?(key)
        @lines << "#{name.strip}: #{value.to_s.strip}\r\n"
      end

      def inspect
        @raw.inspect
      end

      def to_h
        @raw.dup
      end

      def to_s
        @lines.join('')
      end
    end

  end
end

Version data entries

86 entries across 58 versions & 10 rubygems

Version Path
kinetic_sdk-5.0.19 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.19 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.18 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.18 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.17 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.17 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.16 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.16 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.15 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.15 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.14 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.14 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.13 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.13 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.12 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.12 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.11 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.11 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.10 gems/websocket-driver-0.6.5/lib/websocket/driver/headers.rb
kinetic_sdk-5.0.10 gems/websocket-driver-0.6.5-java/lib/websocket/driver/headers.rb