lib/websocket/handshake/base.rb in websocket-1.2.2 vs lib/websocket/handshake/base.rb in websocket-1.2.3

- old
+ new

@@ -7,20 +7,22 @@ attr_reader :host, :port, :path, :query, :state, :version, :secure, :headers # Initialize new WebSocket Handshake and set it's state to :new def initialize(args = {}) + args.each { |k, v| instance_variable_set("@#{k}", v) } + @state = :new @handler = nil @data = '' - @headers = {} + @headers ||= {} end # @abstract Add data to handshake def <<(data) - raise NotImplementedError + @data << data end # Return textual representation of handshake request or response # @return [String] text of response def to_s @@ -28,12 +30,12 @@ end rescue_method :to_s, return: '' # Recreate inspect as #to_s was overwritten def inspect - vars = self.instance_variables.map { |v| "#{v}=#{instance_variable_get(v).inspect}" }.join(', ') - insp = "#{self.class}:0x%08x" % (self.__id__ * 2) + vars = instance_variables.map { |v| "#{v}=#{instance_variable_get(v).inspect}" }.join(', ') + insp = Kernel.format("#{self.class}:0x%08x", __id__) "<#{insp} #{vars}>" end # Is parsing of data finished? # @return [Boolena] True if request was completely parsed or error occured. False otherwise @@ -42,23 +44,23 @@ end # Is parsed data valid? # @return [Boolean] False if some errors occured. Reason for error could be found in error method def valid? - finished? && @error == nil && @handler && @handler.valid? + finished? && @error.nil? && @handler && @handler.valid? end rescue_method :valid?, return: false # @abstract Should send data after parsing is finished? def should_respond? - raise NotImplementedError + fail NotImplementedError end # Data left from parsing. Sometimes data that doesn't belong to handshake are added - use this method to retrieve them. # @return [String] String if some data are available. Nil otherwise def leftovers - (@leftovers.to_s.split("\n", reserved_leftover_lines + 1)[reserved_leftover_lines] || "").strip + (@leftovers.to_s.split("\n", reserved_leftover_lines + 1)[reserved_leftover_lines] || '').strip end # URI of request. # @return [String] Full URI with protocol # @example @@ -80,11 +82,11 @@ 0 end # Changes state to error and sets error message # @param [String] message Error message to set - def set_error(message) + def error=(message) @state = :error super end HEADER = /^([^:]+):\s*(.+)$/ @@ -106,9 +108,8 @@ end @state = :finished true end - end end end