module Ably::Models::MessageEncoders

Public Class Methods

encoder_from(encoder, options) click to toggle source

@api private

# File lib/submodules/ably-ruby/lib/ably/models/message_encoders/base.rb, line 116
def self.encoder_from(encoder, options)
  encoder_klass = if encoder.kind_of?(String)
    encoder.split('::').inject(Kernel) do |base, klass_name|
      base.public_send(:const_get, klass_name)
    end
  else
    encoder
  end

  raise "Encoder must inherit from `Ably::Models::MessageEncoders::Base`" unless encoder_klass.ancestors.include?(Ably::Models::MessageEncoders::Base)
  encoder_klass.new(self, options)
end
register_default_encoders(client, options = {}) click to toggle source

@api private

# File lib/submodules/ably-ruby/lib/ably/models/message_encoders/base.rb, line 107
def self.register_default_encoders(client, options = {})
  binary_protocol = !!options[:binary_protocol]
  client.register_encoder Ably::Models::MessageEncoders::Utf8
  client.register_encoder Ably::Models::MessageEncoders::Json
  client.register_encoder Ably::Models::MessageEncoders::Cipher
  client.register_encoder Ably::Models::MessageEncoders::Base64, binary_protocol: binary_protocol
end