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