class Hypostasis::Key

Public Class Methods

new(key_path, value = nil) click to toggle source
# File lib/hypostasis/key.rb, line 2
def initialize(key_path, value = nil)
  @key_path = key_path
end

Public Instance Methods

[](index) click to toggle source
# File lib/hypostasis/key.rb, line 14
def [](index)
  unpack_tuple(decomposed_key[index.to_i])
end
first() click to toggle source
# File lib/hypostasis/key.rb, line 6
def first
  unpack_tuple(decomposed_key.first)
end
last() click to toggle source
# File lib/hypostasis/key.rb, line 10
def last
  unpack_tuple(decomposed_key.last)
end

Private Instance Methods

decomposed_key() click to toggle source
# File lib/hypostasis/key.rb, line 20
def decomposed_key
  @decomposed_key ||= @key_path.split('\\')
end
unpack_tuple(key) click to toggle source
# File lib/hypostasis/key.rb, line 24
def unpack_tuple(key)
  begin
    Hypostasis::Tuple.unpack(key)
  rescue RuntimeError => e
    if e.message.match(/^Unknown data type in DB:/)
      key
    else
      raise e
    end
  end
end