Gaga

Git as a key-value store! Build with Grit, it supports SET, GET, KEYS, and DELETE operations. In addition, we can also get the change history key/values.

It can easily be enhanced to include other git features such as branches, diffs, etc

Example:


@gaga = Gaga.new(:path => File.expand_path('..', __FILE__))
@gaga.clear

# SET

@gaga['lady'] = "gaga"

# GET

@gaga['lady'] #=> "gaga"

# KEYS

@gaga.keys  #=> ['lady']

# DELETE

@gaga.delete('lady') #=> 'gaga'

# LOG

@gaga.log('key')

# Produces:

[
 {"message"=>"all clear","committer"=>{"name"=>"Matt Sears", "email"=>"[email protected]"}, "committed_date"=>"2011-09-05..."},
 {"message"=>"set 'lady' ", "committer"=>{"name"=>"Matt Sears", "email"=>"[email protected]"}, "committed_date"=>"2011-09-05..."}
 {"message"=>"delete 'lady' ", "committer"=>{"name"=>"Matt Sears", "email"=>"[email protected]"}, "committed_date"=>"2011-09-05..."}
]