class PureRubyZip::Bitstream
Attributes
bit_index[RW]
byte[RW]
file[RW]
Public Class Methods
new(data)
click to toggle source
# File lib/pure_ruby_zip.rb, line 18 def initialize(data) @data = data @bit_index = 0 end
Public Instance Methods
read_bit()
click to toggle source
# File lib/pure_ruby_zip.rb, line 22 def read_bit res = ((@data[0].codepoints.first >> @bit_index) & 1) == 1 if @bit_index == 7 @data = @data[1..-1] @bit_index = 0 else @bit_index += 1 end res end
read_int(n_bits)
click to toggle source
# File lib/pure_ruby_zip.rb, line 32 def read_int(n_bits) res = 0 (0..(n_bits - 1)).each { |i| res += (read_bit ? 1 : 0) << i } res end