def each_bitslice(number)
      return enum_for(:each_bitslice, number) unless block_given?
      raise ArgumentError, 'number must be a positive Integer' if not number.is_a?(::Integer) or number < 1
      slices = bitsize.div(number) + ((bitsize % number == 0) ? 0 : 1)
      index  = 0
      loop do
        break if slices == 0
        yield(bitslice(index * number, number))
        slices -= 1
        index  += 1
      end
      return self
    end
def each_bitslice(number)
      return enum_for(:each_bitslice, number) unless block_given?
      raise ArgumentError, 'number must be a positive Integer' if not number.is_a?(::Integer) or number < 1
      slices = bitsize.div(number) + ((bitsize % number == 0) ? 0 : 1)
      index  = 0
      loop do
        break if slices == 0
        yield(bitslice(index * number, number))
        slices -= 1
        index  += 1
      end
      return self
    end
Split the bits in this `Bitstring` in groups of `number` bits, and yield
 each group to the block (as a `List`). If no block is given, returns
 an `Enumerator`.

 @example
   b = Erlang::Bitstring[117, bits: 7]
   b.each_bitslice(4).to_a # => [Erlang::Bitstring[14, bits: 4], Erlang::Bitstring[5, bits: 3]]

 @return [self, Enumerator]
 @yield [Binary, Bitstring] Once for each bitstring.
 @see Erlang::Bitstring#each_bitslice