Class: Dnsruby::Bitmap

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/dnsruby/bitmap.rb

Overview

Instances of this class can be created that will hold on to bitmap data and be used to test bits and convert to other formats.

Where an array is used to represent bits, the first element (#0) will be the high bit and the last element will be the low (1’s column) bit.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(number) ⇒ Bitmap

Returns a new instance of Bitmap.



99
100
101
102
# File 'lib/dnsruby/bitmap.rb', line 99

def initialize(number)
  BitMapping.assert_non_negative(number)
  @number = number
end

Instance Attribute Details

#numberObject

This is the internal representation of the bitmap value:



26
27
28
# File 'lib/dnsruby/bitmap.rb', line 26

def number
  @number
end

Class Method Details

.from_binary_string(string) ⇒ Object

Creates an instance from a binary string (e.g. “x0C”).



58
59
60
# File 'lib/dnsruby/bitmap.rb', line 58

def self.from_binary_string(string)
  new(BitMapping.binary_string_to_number(string))
end

.from_bit_array(array) ⇒ Object

Creates an instance from a bit array (e.g. [1, 0, 0, 1])



68
69
70
# File 'lib/dnsruby/bitmap.rb', line 68

def self.from_bit_array(array)
  new(BitMapping.bit_array_to_number(array))
end

.from_number(number) ⇒ Object

Creates an instance from a nonnegative number.



53
54
55
# File 'lib/dnsruby/bitmap.rb', line 53

def self.from_number(number)
  new(number)
end

.from_place_value_array(array) ⇒ Object

Creates an instance from a value array (e.g. [8, 0, 0, 1])



63
64
65
# File 'lib/dnsruby/bitmap.rb', line 63

def self.from_place_value_array(array)
  new(BitMapping.place_value_array_to_number(array))
end

.from_set_bit_position_array(array) ⇒ Object

Creates an instance from an array of positions for the bits that are set (e.g. [0, 3])



73
74
75
# File 'lib/dnsruby/bitmap.rb', line 73

def self.from_set_bit_position_array(array)
  new(BitMapping.set_bit_position_array_to_number(array))
end

Instance Method Details

#==(other) ⇒ Object



104
105
106
# File 'lib/dnsruby/bitmap.rb', line 104

def ==(other)
  other.is_a?(self.class) && other.number == self.number
end

#to_binary_string(min_length = 0) ⇒ Object

Returns the instance’s value as a binary string (e.g. “x0C”)



80
81
82
# File 'lib/dnsruby/bitmap.rb', line 80

def to_binary_string(min_length = 0)
  BitMapping.number_to_binary_string(number, min_length)
end

#to_bit_arrayObject

Returns the instance’s value as an array of bit column place values (e.g. [8, 0, 0, 1])



90
91
92
# File 'lib/dnsruby/bitmap.rb', line 90

def to_bit_array
  BitMapping.number_to_bit_array(number)
end

#to_place_value_arrayObject

Returns the instance’s value as an array of bit column values (e.g. [8, 0, 0, 1])



85
86
87
# File 'lib/dnsruby/bitmap.rb', line 85

def to_place_value_array
  BitMapping.number_to_place_value_array(number)
end

#to_set_bit_position_arrayObject

Returns the instance’s value as an array of positions for the bits that are set (e.g. [0, 3])



95
96
97
# File 'lib/dnsruby/bitmap.rb', line 95

def to_set_bit_position_array
  BitMapping.number_to_set_bit_positions_array(number)
end