Module: EncodeM

Defined in:
lib/encode_m/string.rb,
lib/encode_m.rb,
lib/encode_m/decoder.rb,
lib/encode_m/encoder.rb,
lib/encode_m/numeric.rb,
lib/encode_m/version.rb,
lib/encode_m/composite.rb

Overview

Composite key encoding for M language subscripts

Defined Under Namespace

Classes: Composite, Decoder, Encoder, Error, Numeric, String

Constant Summary collapse

VERSION =
"3.0.0"

Class Method Summary collapse

Class Method Details

.decode(encoded) ⇒ Object

Decode - reverse the M encoding



24
25
26
# File 'lib/encode_m.rb', line 24

def self.decode(encoded)
  Decoder.decode(encoded)
end

.decode_composite(encoded) ⇒ Object

Decode composite keys



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

def self.decode_composite(encoded)
  Decoder.decode_composite(encoded)
end

.M(*values) ⇒ Object

M language style constructor



34
35
36
37
38
39
40
# File 'lib/encode_m.rb', line 34

def self.M(*values)
  if values.length == 1
    create_single(values[0])
  else
    Composite.new(*values)
  end
end

.new(*values) ⇒ Object

Factory method supporting all M types



15
16
17
18
19
20
21
# File 'lib/encode_m.rb', line 15

def self.new(*values)
  if values.length == 1
    create_single(values[0])
  else
    Composite.new(*values)
  end
end