module RadixEncoding::Encoding::EncodedPoints
Public Instance Methods
alphabet()
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 9 def alphabet raise NotImplementedError end
bits_from_encoded_points(encoded_points)
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 23 def bits_from_encoded_points(encoded_points) encoded_points. map do |encoded_point| alphabet. index(encoded_point). to_s(2). rjust(encoded_point_bitsize, "0") end. join. chars end
clean_encoded_points(encoded_points, padding_size)
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 13 def clean_encoded_points(encoded_points, padding_size) return encoded_points unless padding_size.positive? encoded_points[0...-padding_size] end
count_encoded_points_in(bitsize)
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 19 def count_encoded_points_in(bitsize) bitsize / encoded_point_bitsize end
encoded_point_bitsize()
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 35 def encoded_point_bitsize raise NotImplementedError end
encoded_points_for(bits)
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 39 def encoded_points_for(bits) bits. each_slice(encoded_point_bitsize). map do |encoded_point_bits| encoded_point_index = encoded_point_bits.join.to_i(2) alphabet[encoded_point_index] end end
pad_encoded_points(encoded_points, padding_size)
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 49 def pad_encoded_points(encoded_points, padding_size) return encoded_points if padding.blank? padded_size = encoded_points.size + padding_size Subvisual::ArrayUtils.pad_right(encoded_points, padded_size, padding) end
padding()
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 57 def padding raise NotImplementedError end
unpad_encoded_points(encoded_points)
click to toggle source
# File lib/radix_encoding/encoding/encoded_points.rb, line 61 def unpad_encoded_points(encoded_points) first_padding_index = encoded_points.index(padding) return encoded_points if first_padding_index.nil? encoded_points[0...first_padding_index] end