You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 18, 2019. It is now read-only.
This gem aims to expose all of Sparkey's native functionality to Ruby via FFI bindings.
Additionally, it provides higher-level abstractions around the native functionality to provide a more idiomatic Ruby interface.
Low Level
Sparkey::Native is intended to expose the raw C functions from Sparkey to Ruby via FFI and nothing more.
Use this interface if you are adding Ruby classes and methods to expose new Sparkey functionality. A solid understanding of the FFI API will be required.
Sparkey::Native should wrap all available functions from sparkey.h. If you find one missing please submit a Pull Request.
Mid Level
This gem exposes Ruby-ish versions of most of Sparkey's public data structures and their related functions.
Use these interfaces if you need more control over the specific behavior of Sparkey than the Sparkey::Store API provides.
High Level
The Sparkey::Store API provides a very small interface for using Sparkey as a generic key-value store.
Use the Sparkey::Store API if you only need a fast persistent key-value store and don't want to delve into Sparkey specifics.
Usage
require"sparkey"# Creates or overwrites the Sparkey file.sparkey=Sparkey.create("sparkey_store")# Opens an existing Sparkey file.# sparkey = Sparkey.open("sparkey_store")sparkey.put("first","Hello")sparkey.put("second","World")sparkey.put("third","Goodbye")sparkey.flushputssparkey.size#=> 3putssparkey.get("second")#=> "World"sparkey.put("fourth","Again")sparkey.delete("second")sparkey.delete("third")sparkey.flushputssparkey.size#=> 2collector=Hash.newsparkey.eachdo |key,value|
collector[key]=valueendsparkey.closeputscollector#=> { "first" => "Hello", "fourth" => "Again" }
Contributing
Fork it
Create your feature branch (git checkout -b my-new-feature)
Commit your changes (git commit -am 'Add some feature')
Ensure all tests pass (rake test)
Push to the branch (git push origin my-new-feature)