Sha256: c6e97391e3c44219293f90535d85be0e7f7038cf74af224b743fc979488b6535
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
require 'json' require 'deepstream/constants' module Deepstream class Message attr_reader :action, :data, :topic, :sending_deadline def self.parse(*args) args.first.is_a?(self) ? args.first : new(*args) end def initialize(*args) if args.one? args = args.first.delete(MESSAGE_SEPARATOR).split(MESSAGE_PART_SEPARATOR) end @sending_deadline = nil @topic, @action = args.take(2).map(&:to_sym) @data = args.drop(2) rescue '' end def set_timeout(timeout) @sending_deadline = Time.now + timeout end def to_s args = [@topic, @action] args << @data unless (@data.nil? || @data.empty?) args.join(MESSAGE_PART_SEPARATOR).concat(MESSAGE_SEPARATOR) end def inspect "#{self.class.name}: #{@topic} #{@action} #{@data}" end def needs_authentication? ![TOPIC::CONNECTION, TOPIC::AUTH].include?(@topic) end def expired? @sending_deadline && @sending_deadline < Time.now end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
deepstream-1.0.1 | lib/deepstream/message.rb |
deepstream-1.0.0 | lib/deepstream/message.rb |