Class: Ably::Models::Message
- Inherits:
-
Object
- Object
- Ably::Models::Message
- Includes:
- Ably::Modules::Conversions, Ably::Modules::Encodeable, Ably::Modules::ModelCommon, Ably::Modules::SafeDeferrable
- Defined in:
- lib/ably/models/message.rb
Overview
A class representing an individual message to be sent or received via the Ably Realtime service.
Instance Attribute Summary collapse
-
#attributes ⇒ Hash
readonly
Access the protocol message Hash object ruby’fied to use symbolized keys.
-
#client_id ⇒ String
readonly
The id of the publisher of this message.
-
#connection_id ⇒ String
readonly
The connection_id of the publisher of the message.
-
#data ⇒ Object
readonly
The message payload.
-
#encoding ⇒ Object
readonly
The encoding for the message data.
-
#id ⇒ String
readonly
A globally unique message ID.
-
#name ⇒ String
readonly
The event name, if available.
-
#timestamp ⇒ Time
readonly
Timestamp when the message was received by the Ably the realtime service.
Attributes included from Ably::Modules::ModelCommon
Instance Method Summary collapse
-
#assign_to_protocol_message(protocol_message) ⇒ Object
private
Assign this message to a ProtocolMessage before delivery to the Ably system.
-
#assigned_to_protocol_message? ⇒ Boolean
private
True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably.
-
#initialize(attributes, options = {}) ⇒ Message
constructor
Message initializer.
-
#protocol_message ⇒ Ably::Models::ProtocolMessage
private
The optional ProtocolMessage this message is assigned to.
- #to_json(*args) ⇒ Object
Methods included from Ably::Modules::SafeDeferrable
#callback, #errback, #fail, #succeed
Methods included from Ably::Modules::ModelCommon
Methods included from Ably::Modules::MessagePack
Methods included from Ably::Modules::Encodeable
#decode, #encode, #original_encoding
Constructor Details
#initialize(attributes, options = {}) ⇒ Message
Ably::Models::Message initializer
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/ably/models/message.rb', line 53 def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end |
Instance Attribute Details
#attributes ⇒ Hash (readonly)
Returns Access the protocol message Hash object ruby’fied to use symbolized keys.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
#client_id ⇒ String (readonly)
Returns The id of the publisher of this message.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
#connection_id ⇒ String (readonly)
Returns The connection_id of the publisher of the message.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
#data ⇒ Object (readonly)
Returns The message payload. See the documentation for supported datatypes.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
#encoding ⇒ Object (readonly)
Returns The encoding for the message data. Encoding and decoding of messages is handled automatically by the client library. Therefore, the ‘encoding` attribute should always be nil unless an Ably library decoding error has occurred.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
#id ⇒ String (readonly)
Returns A globally unique message ID.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
#name ⇒ String (readonly)
Returns The event name, if available.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
#timestamp ⇒ Time (readonly)
Returns Timestamp when the message was received by the Ably the realtime service.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/ably/models/message.rb', line 40 class Message include Ably::Modules::Conversions include Ably::Modules::Encodeable include Ably::Modules::ModelCommon include Ably::Modules::SafeDeferrable if defined?(Ably::Realtime) # {Message} initializer # # @param attributes [Hash] object with the underlying message detail key value attributes # @param [Hash] options an options Hash for this initializer # @option options [ProtocolMessage] :protocol_message An optional protocol message to assocate the presence message with # @option options [Logger] :logger An optional Logger to be used by {Ably::Modules::SafeDeferrable} if an exception is caught in a callback # def initialize(attributes, = {}) @logger = [:logger] # Logger expected for SafeDeferrable @protocol_message = [:protocol_message] @raw_hash_object = attributes set_attributes_object attributes ensure_utf_8 :name, name, allow_nil: true ensure_utf_8 :client_id, client_id, allow_nil: true ensure_utf_8 :encoding, encoding, allow_nil: true end %w( name client_id encoding ).each do |attribute| define_method attribute do attributes[attribute.to_sym] end end def data @data ||= attributes[:data].freeze end def id attributes.fetch(:id) { "#{.id!}:#{}" } end def connection_id attributes.fetch(:connection_id) { .connection_id if } end def if attributes[:timestamp] as_time_from_epoch(attributes[:timestamp]) else . end end def attributes @attributes end def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end # Assign this message to a ProtocolMessage before delivery to the Ably system # @api private def () @protocol_message = end # True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably # @return [Boolean] # @api private def !!@protocol_message end # The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised. # @return [Ably::Models::ProtocolMessage] # @api private def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end private def raw_hash_object @raw_hash_object end def ..map(&:object_id).index(self.object_id) end def set_attributes_object(new_attributes) @attributes = IdiomaticRubyWrapper(new_attributes.clone.freeze, stop_at: [:data]) end def logger return @logger if @logger .logger if end end |
Instance Method Details
#assign_to_protocol_message(protocol_message) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Assign this message to a ProtocolMessage before delivery to the Ably system
103 104 105 |
# File 'lib/ably/models/message.rb', line 103 def () @protocol_message = end |
#assigned_to_protocol_message? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
True if this message is assigned to a ProtocolMessage for delivery to Ably, or received from Ably
110 111 112 |
# File 'lib/ably/models/message.rb', line 110 def !!@protocol_message end |
#protocol_message ⇒ Ably::Models::ProtocolMessage
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The optional ProtocolMessage this message is assigned to. If ProtocolMessage is nil, an error will be raised.
117 118 119 120 |
# File 'lib/ably/models/message.rb', line 117 def raise RuntimeError, 'Message is not yet published with a ProtocolMessage. ProtocolMessage is nil' if @protocol_message.nil? @protocol_message end |
#to_json(*args) ⇒ Object
95 96 97 98 99 |
# File 'lib/ably/models/message.rb', line 95 def to_json(*args) as_json(*args).tap do || decode_binary_data_before_to_json end.to_json end |