Class: Tokogen::BitSplitter

Inherits:
Object
  • Object
show all
Defined in:
lib/tokogen/bit_splitter.rb

Constant Summary collapse

BYTE_SIZE =
8

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bytes_enum) ⇒ BitSplitter

Returns a new instance of BitSplitter.



8
9
10
11
12
13
# File 'lib/tokogen/bit_splitter.rb', line 8

def initialize(bytes_enum)
  @bytes_enum = bytes_enum

  bytes_enum_size = @bytes_enum.size
  @size = bytes_enum_size * BYTE_SIZE if bytes_enum_size
end

Instance Attribute Details

#sizeObject (readonly)

Returns the value of attribute size.



6
7
8
# File 'lib/tokogen/bit_splitter.rb', line 6

def size
  @size
end

Instance Method Details

#each(&block) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/tokogen/bit_splitter.rb', line 15

def each(&block)
  enum = Enumerator.new(@bytes_enum_bit_size) do |y|
    @bytes_enum.each do |b|
      BYTE_SIZE.times do |i|
        y.yield(b[i])
      end
    end
  end
  return enum if block.nil?
  enum.each(&block)
end