module LZWS::String::Option
LZWS::Option
module.
Constants
- COMPRESSOR_DEFAULTS
Current compressor defaults.
- DECOMPRESSOR_DEFAULTS
Current decompressor defaults.
- DEFAULT_BUFFER_LENGTH
Current default buffer length.
Public Class Methods
Processes compressor options
and buffer_length_names
. Option: :source_buffer_length
source buffer length. Option: :destination_buffer_length
destination buffer length. Option: :gvl
enables global VM lock where possible. Option: :max_code_bit_length
max code bit length. Option: :block_mode
enables block mode. Option: :without_magic_header
disables magic header. Option: :msb
enables most significant bit mode. Option: :unaligned_bit_groups
enables unaligned bit groups. Option: :quiet
disables lzws library logging. Returns processed compressor options.
# File lib/lzws/option.rb, line 60 def self.get_compressor_options(options, buffer_length_names) Validation.validate_hash options buffer_length_defaults = buffer_length_names.each_with_object({}) do |name, defaults| defaults[name] = DEFAULT_BUFFER_LENGTH end options = COMPRESSOR_DEFAULTS.merge(buffer_length_defaults).merge options buffer_length_names.each { |name| Validation.validate_not_negative_integer options[name] } Validation.validate_bool options[:gvl] max_code_bit_length = options[:max_code_bit_length] unless max_code_bit_length.nil? Validation.validate_positive_integer max_code_bit_length raise ValidateError, "invalid max code bit length" if max_code_bit_length < LOWEST_MAX_CODE_BIT_LENGTH || max_code_bit_length > BIGGEST_MAX_CODE_BIT_LENGTH end without_magic_header = options[:without_magic_header] Validation.validate_bool without_magic_header unless without_magic_header.nil? block_mode = options[:block_mode] Validation.validate_bool block_mode unless block_mode.nil? msb = options[:msb] Validation.validate_bool msb unless msb.nil? unaligned_bit_groups = options[:unaligned_bit_groups] Validation.validate_bool unaligned_bit_groups unless unaligned_bit_groups.nil? quiet = options[:quiet] Validation.validate_bool quiet unless quiet.nil? options end
Processes decompressor options
and buffer_length_names
. Option: :source_buffer_length
source buffer length. Option: :destination_buffer_length
destination buffer length. Option: :gvl
enables global VM lock where possible. Option: :without_magic_header
disables magic header. Option: :msb
enables most significant bit mode. Option: :unaligned_bit_groups
enables unaligned bit groups. Option: :quiet
disables lzws library logging. Returns processed decompressor options.
# File lib/lzws/option.rb, line 107 def self.get_decompressor_options(options, buffer_length_names) Validation.validate_hash options buffer_length_defaults = buffer_length_names.each_with_object({}) do |name, defaults| defaults[name] = DEFAULT_BUFFER_LENGTH end options = DECOMPRESSOR_DEFAULTS.merge(buffer_length_defaults).merge options buffer_length_names.each { |name| Validation.validate_not_negative_integer options[name] } Validation.validate_bool options[:gvl] without_magic_header = options[:without_magic_header] Validation.validate_bool without_magic_header unless without_magic_header.nil? msb = options[:msb] Validation.validate_bool msb unless msb.nil? unaligned_bit_groups = options[:unaligned_bit_groups] Validation.validate_bool unaligned_bit_groups unless unaligned_bit_groups.nil? quiet = options[:quiet] Validation.validate_bool quiet unless quiet.nil? options end