Module: RunLengthEncodingRb

Defined in:
lib/run_length_encoding_rb.rb,
lib/run_length_encoding_rb/error.rb,
lib/run_length_encoding_rb/decoder.rb,
lib/run_length_encoding_rb/encoder.rb,
lib/run_length_encoding_rb/version.rb,
lib/run_length_encoding_rb/rle_element.rb,
lib/run_length_encoding_rb/decoder_mixin.rb,
lib/run_length_encoding_rb/error/type_error.rb,
lib/run_length_encoding_rb/error/attr_missing_error.rb,
lib/run_length_encoding_rb/error/negative_int_error.rb,
lib/run_length_encoding_rb/error/attr_inaccessible_error.rb

Overview

Run-length encoding/decoding.

Defined Under Namespace

Modules: DecoderMixin Classes: AttrInaccessibleError, AttrMissingError, Decoder, Encoder, Error, NegativeIntError, RLEElement, TypeError

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.decode(data) ⇒ Array<Object>

Decode data.

Parameters:

  • data (Array<::RLEElement, #chunk, #run_length>)

    Data to decode.

Returns:

  • (Array<Object>)

    Decoded data.



43
44
45
46
# File 'lib/run_length_encoding_rb.rb', line 43

def self.decode(data)
  decoder = Decoder.new
  decoder.decode(data)
end

.encode(data, separator = "") ⇒ Array<::RLEElement>

Encode data.

Parameters:

  • data (Array, String, Enumerator)

    Data to encode.

  • [String, (Hash)

    a customizable set of options

Returns:

  • (Array<::RLEElement>)

    Encoded data.



29
30
31
32
# File 'lib/run_length_encoding_rb.rb', line 29

def self.encode(data, separator = "")
  encoder = Encoder.new
  encoder.encode(data, separator)
end