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