lib/ably/models/protocol_message.rb in ably-1.2.4 vs lib/ably/models/protocol_message.rb in ably-1.2.6

- old
+ new

@@ -18,12 +18,10 @@ # @return [String] Channel name for messages # @!attribute [r] channel_serial # @return [String] Contains a serial number for a message on the current channel # @!attribute [r] connection_id # @return [String] Contains a string private connection key used to recover this connection - # @!attribute [r] connection_serial - # @return [Bignum] Contains a serial number for a message sent from the server to the client # @!attribute [r] message_serial # @return [Bignum] Contains a serial number for a message sent from the client to the server # @!attribute [r] timestamp # @return [Time] An optional timestamp, applied by the service in messages sent to the client, to indicate the system time at which the message was sent (milliseconds past epoch) # @!attribute [r] messages @@ -127,16 +125,10 @@ Integer(attributes[:msg_serial]) rescue TypeError raise TypeError, "msg_serial '#{attributes[:msg_serial]}' is invalid, a positive Integer is expected for a ProtocolMessage" end - def connection_serial - Integer(attributes[:connection_serial]) - rescue TypeError - raise TypeError, "connection_serial '#{attributes[:connection_serial]}' is invalid, a positive Integer is expected for a ProtocolMessage" - end - def count [1, attributes[:count].to_i].max end # @api private @@ -144,30 +136,16 @@ message_serial && true rescue TypeError false end - # @api private - def has_connection_serial? - connection_serial && true + def has_channel_serial? + channel_serial && true rescue TypeError false end - def serial - if has_connection_serial? - connection_serial - else - message_serial - end - end - - # @api private - def has_serial? - has_connection_serial? || has_message_serial? - end - def messages @messages ||= Array(attributes[:messages]).map do |message| Ably::Models.Message(message, protocol_message: self) end @@ -269,11 +247,11 @@ end # Return a JSON ready object from the underlying #attributes using Ably naming conventions for keys def as_json(*args) raise TypeError, ':action is missing, cannot generate a valid Hash for ProtocolMessage' unless action - raise TypeError, ':msg_serial or :connection_serial is missing, cannot generate a valid Hash for ProtocolMessage' if ack_required? && !has_serial? + raise TypeError, ':msg_serial is missing, cannot generate a valid Hash for ProtocolMessage' if ack_required? && !has_message_serial? attributes.dup.tap do |hash_object| hash_object['action'] = action.to_i hash_object['messages'] = messages.map(&:as_json) unless messages.empty? hash_object['presence'] = presence.map(&:as_json) unless presence.empty? @@ -294,14 +272,15 @@ json_hash.to_json end # True if the ProtocolMessage appears to be invalid, however this is not a guarantee + # Used for validating incoming protocol messages, so no need to add unnecessary checks # @return [Boolean] # @api private def invalid? action_enum = action rescue nil - !action_enum || (ack_required? && !has_serial?) + !action_enum end # @!attribute [r] logger # @api private attr_reader :logger