Class: Bitary

Inherits:
Object
  • Object
show all
Includes:
Size
Defined in:
lib/bitary.rb,
lib/bitary/size.rb,
lib/bitary/bitwarr.rb,
lib/bitary/version.rb

Defined Under Namespace

Modules: Size Classes: Bitwarr

Constant Summary collapse

VERSION =
'0.1.9'

Constants included from Size

Size::BYTE, Size::INT, Size::LONG, Size::SHORT

Instance Method Summary collapse

Constructor Details

#initialize(initial_data, bpi: LONG) ⇒ Bitary

Returns a new instance of Bitary.



10
11
12
13
14
15
# File 'lib/bitary.rb', line 10

def initialize(initial_data, bpi: LONG)
  check_initial_data(initial_data)
  check_bpi(bpi)

  @bitwarr = Bitwarr.new(initial_data, bpi:)
end

Instance Method Details

#[](index) ⇒ Object Also known as: at



17
18
19
20
21
# File 'lib/bitary.rb', line 17

def [](index)
  check_bit_index(index)

  @bitwarr.bit_at(index)
end

#[]=(index, value) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/bitary.rb', line 23

def []=(index, value)
  check_bit_index(index)

  case obj_to_bit(value)
  when 0 then @bitwarr.unbit_at!(index)
  else @bitwarr.bit_at!(index)
  end
end

#bpiObject



62
63
64
# File 'lib/bitary.rb', line 62

def bpi
  @bitwarr.bpi
end

#bpi=(value) ⇒ Object



52
53
54
55
56
# File 'lib/bitary.rb', line 52

def bpi=(value)
  check_bpi(value)

  @bitwarr.bpi = value
end

#each_byteObject



40
41
42
# File 'lib/bitary.rb', line 40

def each_byte(&)
  @bitwarr.each_byte(&)
end

#set(index) ⇒ Object



32
33
34
# File 'lib/bitary.rb', line 32

def set(index)
  self[index] = 1
end

#sizeObject



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

def size
  @bitwarr.bitsize
end

#to_aObject



44
45
46
# File 'lib/bitary.rb', line 44

def to_a
  @bitwarr.to_a
end

#to_sObject



48
49
50
# File 'lib/bitary.rb', line 48

def to_s
  @bitwarr.to_s
end

#unset(index) ⇒ Object



36
37
38
# File 'lib/bitary.rb', line 36

def unset(index)
  self[index] = 0
end