class Gkv::Database

Public Class Methods

new() click to toggle source
# File lib/gkv/database.rb, line 9
def initialize
  `git init`
  @git = Gkv::GitFunctions
end

Public Instance Methods

[](key) click to toggle source
# File lib/gkv/database.rb, line 23
def [](key)
  get(key)
end
[]=(key, value) click to toggle source
# File lib/gkv/database.rb, line 14
def []=(key, value)
  set(key, value)
end
all() click to toggle source
# File lib/gkv/database.rb, line 43
def all
  $ITEMS.keys.map { |key|
    { "#{key}" => YAML.load(@git.cat_file($ITEMS[key].last)) }
  }
end
all_versions(key) click to toggle source
# File lib/gkv/database.rb, line 31
def all_versions(key)
  $ITEMS[key].map { |hash| YAML.load(@git.cat_file(hash)) }
end
get(key) click to toggle source
# File lib/gkv/database.rb, line 35
def get(key)
  if $ITEMS.keys.include?(key)
    YAML.load(@git.cat_file($ITEMS[key].last))
  else
    raise KeyError
  end
end
get_version(version, key) click to toggle source
# File lib/gkv/database.rb, line 27
def get_version(version, key)
  YAML.load(@git.cat_file($ITEMS[key][version.to_i - 1]))
end
load(hash) click to toggle source
# File lib/gkv/database.rb, line 53
def load(hash)
  $ITEMS = YAML.load(@git.cat_file(hash))
end
save() click to toggle source
# File lib/gkv/database.rb, line 49
def save
  @git.hash_object(YAML.dump($ITEMS))
end
set(key, value) click to toggle source
# File lib/gkv/database.rb, line 18
def set(key, value)
  update_items(key, YAML.dump(value))
  key
end