run_length_encoder

run-length encode/decode stuff

Installation

gem 'run_length_encoder'

Usage

require 'run_length_encoder'

# Basic usage
# (see `RunLengthEncoder::Instance#initialize` for supported options)
rle = RunLengthEncoder.new
rle.encode("0000111010")
=> "4:0;3:1;1:0;1:1;1:0"

rle.decode("4:0;3:1;1:0;1:1;1:0")
=> "0000111010"

# You can use built-in configurations
rle = RunLengthEncoder.for_integer_array
rle.encode([0, 0, 0, 0, 1, 1, 1, 0, 1, 0])
=> "4:0;3:1;1:0;1:1;1:0"

rle.decode("4:0;3:1;1:0;1:1;1:0")
=> [0, 0, 0, 0, 1, 1, 1, 0, 1, 0]

# encode/decode are aliased to dump/load for integration with ActiveRecord::Serialization