class Ably::Models::MessageEncoders::Base64
Base64
binary Encoder and Decoder Uses encoding identifier ‘base64’
Constants
- ENCODING_ID
Public Instance Methods
decode(message, channel_options)
click to toggle source
# File lib/submodules/ably-ruby/lib/ably/models/message_encoders/base64.rb, line 20 def decode(message, channel_options) if is_base64_encoded?(message) message[:data] = ::Base64.decode64(message[:data]) strip_current_encoding_part message end end
encode(message, channel_options)
click to toggle source
# File lib/submodules/ably-ruby/lib/ably/models/message_encoders/base64.rb, line 11 def encode(message, channel_options) return if is_empty?(message) if is_binary?(message) && transport_protocol_text? message[:data] = ::Base64.encode64(message[:data]) add_encoding_to_message ENCODING_ID, message end end
Private Instance Methods
is_base64_encoded?(message)
click to toggle source
# File lib/submodules/ably-ruby/lib/ably/models/message_encoders/base64.rb, line 32 def is_base64_encoded?(message) current_encoding_part(message).to_s.match(/^#{ENCODING_ID}$/i) end
is_binary?(message)
click to toggle source
# File lib/submodules/ably-ruby/lib/ably/models/message_encoders/base64.rb, line 28 def is_binary?(message) message[:data].kind_of?(String) && message[:data].encoding == Encoding::ASCII_8BIT end
transport_protocol_text?()
click to toggle source
# File lib/submodules/ably-ruby/lib/ably/models/message_encoders/base64.rb, line 36 def transport_protocol_text? !options[:binary_protocol] end