Module: Net::BER::Extensions::Integer
- Included in:
- Integer
- Defined in:
- lib/net/ber/core_ext/integer.rb
Overview
BER extensions to the Integer class, affecting Fixnum and Bignum objects.
Instance Method Summary collapse
-
#to_ber ⇒ Object
Converts the Integer to BER format.
-
#to_ber_application(tag) ⇒ Object
Generate a BER-encoding for an application-defined INTEGER.
-
#to_ber_enumerated ⇒ Object
Converts the Integer to BER enumerated format.
-
#to_ber_length_encoding ⇒ Object
Converts the Integer to BER length encoding format.
Instance Method Details
#to_ber ⇒ Object
Converts the Integer to BER format.
7 8 9 |
# File 'lib/net/ber/core_ext/integer.rb', line 7 def to_ber "\002#{to_ber_internal}" end |
#to_ber_application(tag) ⇒ Object
Generate a BER-encoding for an application-defined INTEGER. Examples of such integers are SNMP’s Counter, Gauge, and TimeTick types.
31 32 33 |
# File 'lib/net/ber/core_ext/integer.rb', line 31 def to_ber_application(tag) [0x40 + tag].pack("C") + to_ber_internal end |
#to_ber_enumerated ⇒ Object
Converts the Integer to BER enumerated format.
13 14 15 |
# File 'lib/net/ber/core_ext/integer.rb', line 13 def to_ber_enumerated "\012#{to_ber_internal}" end |
#to_ber_length_encoding ⇒ Object
Converts the Integer to BER length encoding format.
19 20 21 22 23 24 25 26 |
# File 'lib/net/ber/core_ext/integer.rb', line 19 def to_ber_length_encoding if self <= 127 [self].pack('C') else i = [self].pack('N').sub(/^[\0]+/, "") [0x80 + i.length].pack('C') + i end end |