bindi 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +64 -66
- data/bindi.gemspec +1 -2
- data/lib/bindi.rb +1 -1
- data/lib/bindi/version.rb +1 -1
- metadata +8 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95a53ade2cb5e9748468fe43c4b23023202b6012
|
4
|
+
data.tar.gz: 1a2d77ff97563e5880fec8c4b0f0aafe191150b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0db0612def5b52f23883933ece7c1875fd4af6f1198f199bfb3004ac16e94fa9013b34a5abdbb70971f8e2a5557d338940c611d5a856b73061c22e50fe8b887f
|
7
|
+
data.tar.gz: f34831006245cb6b17348a7e6418f22a9871e1e45b02ee31a80e5a915a2f2a5b4615d646fa3e38a1a369a2883f629d648279dc29e7ae49d2bffc3e037e729b4a
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,104 +1,102 @@
|
|
1
1
|
# Bindi
|
2
|
+
Persist your Ruby objects to [Redis](http://redis.io/)!
|
2
3
|
|
3
|
-
[
|
4
|
+
Bindi provides a simple Hash-like syntax for serializing and storing Ruby objects using the [redis](https://github.com/redis/redis-rb#readme) gem. Serialize with Marshal, YAML, JSON or your serializer of choice (as long as it supports #dump and #load methods).
|
4
5
|
|
5
|
-
Bindi provides an easy to use Hash-like syntax for serializing Ruby objects with Marshal, YAML or JSON, and then persisting to [Redis](http://redis.io/) with the [redis gem](https://github.com/redis/redis-rb#readme).
|
6
|
-
|
7
|
-
## Installation
|
8
|
-
|
9
|
-
Add this line to your application's Gemfile:
|
10
|
-
|
11
|
-
gem 'bindi'
|
12
|
-
|
13
|
-
Or install it yourself:
|
14
|
-
|
15
|
-
$ gem install bindi
|
16
|
-
|
17
|
-
Then install Redis:
|
18
|
-
|
19
|
-
$ brew install redis
|
20
|
-
|
21
|
-
And start Redis:
|
22
|
-
|
23
|
-
$ redis-server
|
24
|
-
|
25
6
|
## Usage
|
26
|
-
|
27
|
-
### The Basics
|
28
|
-
|
29
7
|
```ruby
|
30
8
|
require 'bindi'
|
31
|
-
require 'yaml'
|
32
9
|
|
33
|
-
bindi = Bindi.new
|
10
|
+
bindi = Bindi.new # Marshal is the default serializer.
|
34
11
|
#=> #<Redis client v3.0.2 for redis://127.0.0.1:6379/0>
|
35
12
|
|
36
|
-
bindi[:state_gemstones] = {
|
37
|
-
|
38
|
-
arizona: 'Turquoise',
|
39
|
-
arkansas: 'Diamond' }
|
40
|
-
|
41
|
-
#=> {:alabama=>"Star Blue Quartz", ...
|
42
|
-
|
13
|
+
bindi[:state_gemstones] = {alabama: 'Star Blue Quartz',
|
14
|
+
alaska: 'Nephrite Jade'}
|
43
15
|
exit
|
44
16
|
```
|
45
17
|
|
46
|
-
Your Ruby Object is now stored in Redis
|
47
|
-
|
18
|
+
Your Ruby Object is now stored in Redis:
|
48
19
|
```ruby
|
49
20
|
require 'bindi'
|
50
21
|
|
51
|
-
bindi = Bindi.new
|
22
|
+
bindi = Bindi.new
|
52
23
|
#=> #<Redis client v3.0.2 for redis://127.0.0.1:6379/0>
|
53
24
|
|
54
|
-
bindi.keys
|
55
|
-
#=> "state_gemstones"
|
56
|
-
|
57
25
|
bindi[:state_gemstones]
|
58
|
-
|
26
|
+
#=> {:alabama=>"Star Blue Quartz", :alaska=>"Nephrite Jade"}
|
59
27
|
```
|
60
28
|
|
61
|
-
###
|
62
|
-
|
29
|
+
### Additional Hash-like methods:
|
63
30
|
```ruby
|
64
|
-
bindi
|
65
|
-
#=>
|
66
|
-
|
67
|
-
bindi[:key]
|
68
|
-
#=> "value"
|
31
|
+
bindi.keys
|
32
|
+
#=> [:state_gemstones]
|
69
33
|
|
70
34
|
bindi.key? :nope
|
71
35
|
#=> false
|
72
36
|
|
73
|
-
bindi.
|
74
|
-
#=>
|
75
|
-
|
76
|
-
bindi.delete :key
|
77
|
-
#=> "value"
|
78
|
-
|
79
|
-
bindi.clear # Flushes entire DB
|
80
|
-
#=> []
|
37
|
+
bindi.delete :state_gemstones
|
38
|
+
#=> {:alabama=>"Star Blue Quartz", :alaska=>"Nephrite Jade"}
|
81
39
|
|
82
40
|
bindi.empty?
|
83
41
|
#=> true
|
84
42
|
```
|
85
43
|
|
86
|
-
###
|
44
|
+
### Alternative Serializers
|
45
|
+
The default serializer is Marshal but you an alternative serializer can be specified when creating a new Bindi instance:
|
46
|
+
```ruby
|
47
|
+
require 'bindi'
|
48
|
+
require 'json'
|
49
|
+
|
50
|
+
bindi = Bindi.new JSON
|
51
|
+
#=> #<Redis client v3.0.2 for redis://127.0.0.1:6379/0>
|
52
|
+
```
|
87
53
|
|
54
|
+
A serializer without #dump and #load methods, like [Message Pack](http://msgpack.org), can be used by implementing those methods:
|
88
55
|
```ruby
|
89
|
-
bindi
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
56
|
+
require 'bindi'
|
57
|
+
require 'msgpack'
|
58
|
+
|
59
|
+
module MessagePack
|
60
|
+
def self.dump(data)
|
61
|
+
pack(data)
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.load(data)
|
65
|
+
unpack(data)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
bindi = Bindi.new MessagePack
|
70
|
+
#=> #<Redis client v3.0.4 for redis://127.0.0.1:6379/0>
|
98
71
|
```
|
72
|
+
## Installation
|
73
|
+
#### Install Bindi
|
99
74
|
|
100
|
-
|
75
|
+
$ gem install bindi
|
76
|
+
|
77
|
+
#### Install Redis
|
78
|
+
Brew package:
|
79
|
+
|
80
|
+
`brew install redis`
|
101
81
|
|
82
|
+
Apt-get package:
|
83
|
+
|
84
|
+
`sudo apt-get install redis-server`
|
85
|
+
|
86
|
+
Or build from source:
|
87
|
+
```bash
|
88
|
+
wget http://download.redis.io/redis-stable.tar.gz
|
89
|
+
tar xvzf redis-stable.tar.gz
|
90
|
+
cd redis-stable
|
91
|
+
make
|
92
|
+
```
|
93
|
+
|
94
|
+
Start Redis if it isn't running:
|
95
|
+
|
96
|
+
$ redis-server
|
97
|
+
|
98
|
+
## Contributing
|
102
99
|
1. Fork it
|
103
100
|
2. Commit your changes
|
104
101
|
3. Pull request
|
102
|
+
4. :cake:
|
data/bindi.gemspec
CHANGED
data/lib/bindi.rb
CHANGED
data/lib/bindi/version.rb
CHANGED
metadata
CHANGED
@@ -1,41 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bindi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shannon Skipper
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: redis
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
17
|
+
- - ">="
|
32
18
|
- !ruby/object:Gem::Version
|
33
19
|
version: '0'
|
34
20
|
type: :runtime
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
|
-
- -
|
24
|
+
- - ">="
|
39
25
|
- !ruby/object:Gem::Version
|
40
26
|
version: '0'
|
41
27
|
description: Persist your Ruby objects in Redis.
|
@@ -45,7 +31,7 @@ executables: []
|
|
45
31
|
extensions: []
|
46
32
|
extra_rdoc_files: []
|
47
33
|
files:
|
48
|
-
- .gitignore
|
34
|
+
- ".gitignore"
|
49
35
|
- Gemfile
|
50
36
|
- LICENSE
|
51
37
|
- README.md
|
@@ -65,17 +51,17 @@ require_paths:
|
|
65
51
|
- lib
|
66
52
|
required_ruby_version: !ruby/object:Gem::Requirement
|
67
53
|
requirements:
|
68
|
-
- -
|
54
|
+
- - ">="
|
69
55
|
- !ruby/object:Gem::Version
|
70
56
|
version: '0'
|
71
57
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- -
|
59
|
+
- - ">="
|
74
60
|
- !ruby/object:Gem::Version
|
75
61
|
version: '0'
|
76
62
|
requirements: []
|
77
63
|
rubyforge_project:
|
78
|
-
rubygems_version: 2.
|
64
|
+
rubygems_version: 2.4.1
|
79
65
|
signing_key:
|
80
66
|
specification_version: 4
|
81
67
|
summary: Serialize and store Ruby object in Redis.
|