Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Ruby wrapper for Spotify's Sparkey

License

NotificationsYou must be signed in to change notification settings

emnl/gnista

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gnista is a wrapper for the database/hashstoreSparkey written for Ruby. Gnista packs all the native features of Sparkey into a shiny red package, easy to use.

Setup

You will need Sparkey, obviously. It's really easy to install. Head over tohttp://github.com/spotify/sparkey and install it, I'll wait..

Now, add this line to your application's Gemfile:

gem 'gnista'

And then execute:

$ bundle

Or install it yourself as:

$ gem install gnista

Usage

You can read about Sparkeyhere.

require'gnista'logwriter=Gnista::Logwriter.new"mylog.log"# no compressionlogwriter=Gnista::Logwriter.new"mylog.log",4000# 4k compression block sizelogwriter=Gnista::Logwriter.new"mylog.log",:append# append to existing loglogwriter.logpath# => "mylog.log"logwriter.put"key","value"# put entrylogwriter["key"]="value"logwriter.del"key"# delete entrylogwriter.flushlogwriter.write_batchdologwriter["key1"]="value1"logwriter["key2"]="value2"endlogreader=Gnista::Logreader.new"mylog.log"logreader.logpath# => "mylog.log"logreader.each{|key,value,type|putskey,value,type}# => "key", "value"/nil, :put/:deletelogreader.maxkeylen# largest key lengthlogreader.maxkeylen# largest value lengthGnista::Hash.write"mylog.hash","mylog.log"# no preferred hash sizeGnista::Hash.write"mylog.hash","mylog.log",4# 32 bit murmurhash3_x86_32Gnista::Hash.write"mylog.hash","mylog.log",8# lower 64-bit part of murmurhash3_x64_128hash=Gnista::Hash.new"mylog.hash","mylog.log"logwriter.hashpath# => "mylog.hash"logwriter.logpath# => "mylog.log"hash.each{|key,value|putskey,value}hash.get"key"# => "value" or nilhash["key"]hash.maxkeylenhash.maxkeylenhash.lengthhash.collisionshash.empty?hash.include?"key"hash.keys# => ["key1", "key2"]hash.values# => ["value1", "value2"]# Don't forget to close!logwriter.closelogreader.closehash.closelogwriter.open? ||logreader.open? ||hash.open?# => false

BothLogreaderandHash mixinEnumerable.

Contributing

Step-by-step:

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Write some code
  4. Build and test
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create new Pull Request

Use the following commands to build the native extensions and test:

$ rake make$ rake test

[8]ページ先頭

©2009-2025 Movatter.jp