Sha256: 29354304846139b3ad1a52783b4c246e7bc23849974230143bdc98f9ef352168

Contents?: true

Size: 928 Bytes

Versions: 2

Compression:

Stored size: 928 Bytes

Contents

require 'stringio'

module Net
  class LDAP
    module Extensions
      module String
        #
        # to_ber
        # A universal octet-string is tag number 4,
        # but others are possible depending on the context, so we
        # let the caller give us one.
        # The preferred way to do this in user code is via to_ber_application_sring
        # and to_ber_contextspecific.
        #
        def to_ber code = 4
          [code].pack('C') + length.to_ber_length_encoding + self
        end

        #
        # to_ber_application_string
        #
        def to_ber_application_string code
          to_ber( 0x40 + code )
        end

        #
        # to_ber_contextspecific
        #
        def to_ber_contextspecific code
          to_ber( 0x80 + code )
        end
        
        def read_ber syntax=nil
          StringIO.new(self).
            read_ber(syntax)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
net-ldap-0.1.1 lib/net/ldap/core_ext/string.rb
net-ldap-0.1.0 lib/net/ldap/core_ext/string.rb