bindi 0.0.8 → 0.1.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3919585e02b21afbf784dad9ddcc951a3e507576
4
+ data.tar.gz: 9d8cf3d10124d0c637cc212d52813f7c31ac1142
5
+ SHA512:
6
+ metadata.gz: 21f5e5a41a62d5f1f42cb09aeb98b628fd761267b911b91314707c31710c3db23626b72f47064023c7ed30818e41f899968e114e1a44e6dbb0492afbd9bef27a
7
+ data.tar.gz: 40ac89024e1f56582bdaf9f27f278654b544889aa881ecbf0fc5857051e24183fe2c1cb834cf5e73ca80187bb1b39663b515c9e2df4db131d824974e5cf66a18
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Bindi
2
2
 
3
- [Bindi](https://github.com/Havenwood/bindi) is a DSL for storing serializable Ruby Objects in [Redis](http://redis.io/) using [Ohm](http://ohm.keyvalue.org/).
3
+ [Bindi](https://github.com/havenwood/bindi#readme) makes it very, very simple to store native Ruby object in Redis!
4
+
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).
4
6
 
5
7
  ## Installation
6
8
 
@@ -26,8 +28,8 @@ And start Redis:
26
28
 
27
29
  ```ruby
28
30
  require 'bindi'
29
- #=> true
30
-
31
+ require 'yaml'
32
+
31
33
  bindi = Bindi.new YAML # Choose between Marshal, YAML, JSON, etcetera for serializing.
32
34
  #=> #<Redis client v3.0.2 for redis://127.0.0.1:6379/0>
33
35
 
@@ -45,7 +47,6 @@ Your Ruby Object is now stored in Redis.
45
47
 
46
48
  ```ruby
47
49
  require 'bindi'
48
- #=> true
49
50
 
50
51
  bindi = Bindi.new YAML
51
52
  #=> #<Redis client v3.0.2 for redis://127.0.0.1:6379/0>
@@ -65,36 +66,35 @@ bindi[:key] = 'value'
65
66
 
66
67
  bindi[:key]
67
68
  #=> "value"
68
-
69
- bindi.clear # Flushes entire DB
70
-
71
- bindi.delete :key
72
- #=> 1
73
-
74
- bindi.each do |key|
75
- puts key
76
- end
77
-
78
- bindi.empty?
79
- #=> false
80
-
81
- bindi.inspect
82
69
 
83
70
  bindi.key? :nope
84
71
  #=> false
85
-
72
+
86
73
  bindi.keys
87
- #=> "key"
74
+ #=> [:key]
75
+
76
+ bindi.delete :key
77
+ #=> "value"
78
+
79
+ bindi.clear # Flushes entire DB
80
+ #=> []
81
+
82
+ bindi.empty?
83
+ #=> true
88
84
  ```
89
85
 
90
- ### Redis Helper Methods
86
+ ### Redis Info
91
87
 
92
88
  ```ruby
93
- bindi.info
94
- #=> {"redis_version"=>"2.4.15", ...
89
+ bindi
90
+ #=> #<Redis client v3.0.4 for redis://127.0.0.1:6379/0>
95
91
 
96
- bindi.inspect_redis
97
- #=> "#<Redis client v2.2.2 connected to redis://127.0.0.1:6379 ..."
92
+ bindi.info
93
+ #=> {"redis_version"=>"2.6.14",
94
+ "redis_git_sha1"=>"00000000",
95
+ "redis_git_dirty"=>"0",
96
+ "redis_mode"=>"standalone",
97
+ ...}
98
98
  ```
99
99
 
100
100
  ## Contributing
data/Rakefile CHANGED
@@ -1,2 +1,7 @@
1
- #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
1
+ require 'rake/testtask'
2
+
3
+ task default: [:test]
4
+
5
+ Rake::TestTask.new do |test|
6
+ test.pattern = 'test/*test.rb'
7
+ end
@@ -4,10 +4,10 @@ require File.expand_path('../lib/bindi/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ['Shannon Skipper']
6
6
  gem.email = ['shannonskipper@gmail.com']
7
- gem.description = %q{A DSL for saving Ruby Objects to Redis.}
8
- gem.summary = %q{Bindi is a DSL that marshals Ruby Objects and saves them to Redis using Ohm.}
9
- gem.homepage = 'https://github.com/Havenwood/bindi'
10
-
7
+ gem.description = %q{Persist your Ruby objects in Redis.}
8
+ gem.summary = %q{Serialize and store Ruby object in Redis.}
9
+ gem.homepage = 'https://github.com/havenwood/bindi#readme'
10
+ gem.license = 'MIT'
11
11
  gem.files = `git ls-files`.split($\)
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
@@ -15,9 +15,6 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ['lib']
16
16
  gem.version = Bindi::VERSION
17
17
 
18
- gem.add_development_dependency 'ohm'
19
- gem.add_runtime_dependency 'ohm'
20
-
21
- gem.signing_key = '/Users/shannonskipper/.gem/private/gem-private_key.pem'
22
- gem.cert_chain = ['/Users/shannonskipper/.gem/private/gem-public_cert.pem']
18
+ gem.add_development_dependency 'redis'
19
+ gem.add_runtime_dependency 'redis'
23
20
  end
@@ -1,58 +1,50 @@
1
- require 'ohm'
2
- require 'bindi/version'
1
+ require 'redis'
3
2
 
4
3
  class Bindi
5
- def initialize serializer
4
+ def initialize serializer = Marshal
6
5
  @serializer = serializer
7
- end
8
-
9
- def connect
10
- Ohm.connect
6
+ @redis = Redis.new
11
7
  end
12
8
 
13
9
  def [] key
14
- @serializer.load(Ohm.redis.get key)
10
+ @serializer.load(@redis.get key) if @redis.exists key
15
11
  end
16
12
 
17
13
  def []= key, value
18
- Ohm.redis.set key, @serializer.dump(value)
14
+ @redis.set key, @serializer.dump(value)
19
15
  end
20
16
 
21
17
  def clear
22
- Ohm.redis.flushdb
18
+ [] if @redis.flushdb == "OK"
23
19
  end
24
20
 
25
21
  def delete key
26
- Ohm.redis.del key
27
- end
28
-
29
- def each
30
- Ohm.redis.keys.each do
31
- yield
22
+ if key? key
23
+ value = @serializer.load(@redis.get key)
24
+ @redis.del key
25
+ value
32
26
  end
33
27
  end
34
28
 
35
29
  def empty?
36
- Ohm.redis.keys.empty?
30
+ @redis.keys.empty?
37
31
  end
38
32
 
39
33
  def info
40
- Ohm.redis.info
34
+ @redis.info
41
35
  end
42
-
36
+
43
37
  def inspect
44
- Ohm.redis.inspect
38
+ @redis.inspect
45
39
  end
46
-
47
40
  alias to_s inspect
48
41
 
49
42
  def key? key
50
- Ohm.redis.exists key
43
+ @redis.exists key
51
44
  end
52
-
53
45
  alias has_key key?
54
46
 
55
47
  def keys
56
- Ohm.redis.keys.map &:to_sym
48
+ @redis.keys.map &:to_sym
57
49
  end
58
- end
50
+ end
@@ -1,3 +1,3 @@
1
1
  class Bindi
2
- VERSION = '0.0.8'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -0,0 +1,65 @@
1
+ require_relative 'helper'
2
+
3
+ describe Bindi do
4
+ before do
5
+ @bindi = Bindi.new
6
+ end
7
+
8
+ describe "getting a list of keys with @bindi.keys" do
9
+ it "returns an Array" do
10
+ assert_kind_of Array, @bindi.keys
11
+ end
12
+ end
13
+
14
+ describe "getting true or false if key exists with @bindi.key?" do
15
+ before do
16
+ @bindi[:cake] = 'yummy'
17
+ end
18
+
19
+ it "returns true if key exists" do
20
+ assert @bindi.key?(:cake)
21
+ end
22
+
23
+ it "returns false if the key doesn't exist" do
24
+ refute @bindi.key?(:this_does_not_exist)
25
+ end
26
+ end
27
+
28
+ describe "getting a particular key's value with @bindi.[]" do
29
+ before do
30
+ @bindi[:cake] = 'yummy'
31
+ end
32
+
33
+ it "returns a value if the key exists" do
34
+ assert_equal 'yummy', @bindi[:cake]
35
+ end
36
+
37
+ it "returns nil if the key doesn't exist" do
38
+ assert_nil @bindi[:this_does_not_exist]
39
+ end
40
+ end
41
+
42
+ describe "setting a particular key's value with @bindi.[]=" do
43
+ before do
44
+ @bindi[:trees] = ['oak', 'pine', 'cedar']
45
+ end
46
+
47
+ it "should add the key to the persistent store" do
48
+ assert @bindi.key?(:trees)
49
+ end
50
+
51
+ it "should be set to the expected value" do
52
+ assert_equal ["oak", "pine", "cedar"], @bindi[:trees]
53
+ end
54
+ end
55
+
56
+ describe "deleting a root key with @bindi.delete" do
57
+ before do
58
+ @bindi[:cake] = 'yummy'
59
+ end
60
+
61
+ it "returns the value of the deleted key" do
62
+ assert_equal "yummy", @bindi.delete(:cake)
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,3 @@
1
+ require 'minitest/autorun'
2
+ require 'minitest/pride'
3
+ require_relative '../lib/bindi'
metadata CHANGED
@@ -1,79 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bindi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Shannon Skipper
9
8
  autorequire:
10
9
  bindir: bin
11
- cert_chain:
12
- - !binary |-
13
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURpakNDQW5LZ0F3SUJB
14
- Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJGTVJjd0ZRWURWUVFEREE1emFH
15
- RnUKYm05dWMydHBjSEJsY2pFVk1CTUdDZ21TSm9tVDhpeGtBUmtXQldkdFlX
16
- bHNNUk13RVFZS0NaSW1pWlB5TEdRQgpHUllEWTI5dE1CNFhEVEV6TURJd01q
17
- SXlNalExTUZvWERURTBNREl3TWpJeU1qUTFNRm93UlRFWE1CVUdBMVVFCkF3
18
- d09jMmhoYm01dmJuTnJhWEJ3WlhJeEZUQVRCZ29Ka2lhSmsvSXNaQUVaRmdW
19
- bmJXRnBiREVUTUJFR0NnbVMKSm9tVDhpeGtBUmtXQTJOdmJUQ0NBU0l3RFFZ
20
- SktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1scwo1WVQ5UHpW
21
- bjM0NWVhL0NaN1hjdHZaVEVGK0d0MWxEbTRWNDFXVkcyR1FnTmEwejlyZFlh
22
- RkF2MzNDNUpqQlg1CkM5ajBKZDU1REREZkdGejh5YTd3WFRTVzdIUGFiNjZx
23
- aFpEWDFYQ2s3OXZmMmFCMFJkVlJnR3dKL1FYa1N3UEgKOGhPV0ZoTTc5L2pM
24
- VEFRcU8yN0pUbHdTSmhHNDNBZUxMWUlqRm4xei8wejVzRGFqdWJ6TVZaUkd5
25
- Rjd1R0hSSgpUcEdEZFhsbGdUNndldU9KNjA4SlRPYTRGeU9EK1lyVlNBWWZN
26
- c09PMFM3SzhHTm9qSVdGeGp2Mk16azFZMG1ECkpRcS9yREorRU51L1lkOTJo
27
- TUVXMzdtM3R1K1l6LzNYS3ZsalBxNHhjZ05sY093NTN1b1Q5Q3FmbERTbmVt
28
- ekMKQTBJV2RLdzNVYjBnWEk0VGY5VUNBd0VBQWFPQmhEQ0JnVEFKQmdOVkhS
29
- TUVBakFBTUFzR0ExVWREd1FFQXdJRQpzREFkQmdOVkhRNEVGZ1FVK2NvaEhy
30
- dXI3S3FScFYvakZzYXRFRmY5cjJzd0l3WURWUjBSQkJ3d0dvRVljMmhoCmJt
31
- NXZibk5yYVhCd1pYSkFaMjFoYVd3dVkyOXRNQ01HQTFVZEVnUWNNQnFCR0hO
32
- b1lXNXViMjV6YTJsd2NHVnkKUUdkdFlXbHNMbU52YlRBTkJna3Foa2lHOXcw
33
- QkFRVUZBQU9DQVFFQUNHODRxc0d3NGYrRGorZHlka1laSzVvMgp3VUh1YjNV
34
- U1YwRlo1Rnd1cVhaclcxQitjY3JqNzZWVzdsalpkNnJyYTkxMjBmSC9KOUN0
35
- R0ZYSExOYmJGYnFyCk03Tkd4N0p4eVBVbFdTQ0VDYUVIeDF3UkFzc3Y2aU9p
36
- TzlpZWozU1pGS2VrQWZDVDNWUG1Kb2s1OXR2dGtHL1MKWGRsYkZGekQwclMw
37
- MEdaZEEyaHBzSmJ2ck1IcmNlclJsSTNXRnR1dk9RT2VGN01ndDNmMnNJQjVl
38
- RkZQR2huZgp6MjJXUXliTStmbGpBek1FcE1qYkdUaFdtdy9nS3FIV09NT1Ey
39
- WjlTOWpjR2pFZUVzK3EzTFJhdlJDelJCQnptCnVZSWIwbWtUcGg0M3lxOVp4
40
- T3h3VDNmYld0RkorUDAwNEl2ZnFwUmpqelgvRXFTRTVBUi94RjFwYTUyRjd3
41
- PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
42
- date: 2013-02-08 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2013-07-06 00:00:00.000000000 Z
43
12
  dependencies:
44
13
  - !ruby/object:Gem::Dependency
45
- name: ohm
14
+ name: redis
46
15
  requirement: !ruby/object:Gem::Requirement
47
- none: false
48
16
  requirements:
49
- - - ! '>='
17
+ - - '>='
50
18
  - !ruby/object:Gem::Version
51
19
  version: '0'
52
20
  type: :development
53
21
  prerelease: false
54
22
  version_requirements: !ruby/object:Gem::Requirement
55
- none: false
56
23
  requirements:
57
- - - ! '>='
24
+ - - '>='
58
25
  - !ruby/object:Gem::Version
59
26
  version: '0'
60
27
  - !ruby/object:Gem::Dependency
61
- name: ohm
28
+ name: redis
62
29
  requirement: !ruby/object:Gem::Requirement
63
- none: false
64
30
  requirements:
65
- - - ! '>='
31
+ - - '>='
66
32
  - !ruby/object:Gem::Version
67
33
  version: '0'
68
34
  type: :runtime
69
35
  prerelease: false
70
36
  version_requirements: !ruby/object:Gem::Requirement
71
- none: false
72
37
  requirements:
73
- - - ! '>='
38
+ - - '>='
74
39
  - !ruby/object:Gem::Version
75
40
  version: '0'
76
- description: A DSL for saving Ruby Objects to Redis.
41
+ description: Persist your Ruby objects in Redis.
77
42
  email:
78
43
  - shannonskipper@gmail.com
79
44
  executables: []
@@ -88,29 +53,33 @@ files:
88
53
  - bindi.gemspec
89
54
  - lib/bindi.rb
90
55
  - lib/bindi/version.rb
91
- homepage: https://github.com/Havenwood/bindi
92
- licenses: []
56
+ - test/bindi_test.rb
57
+ - test/helper.rb
58
+ homepage: https://github.com/havenwood/bindi#readme
59
+ licenses:
60
+ - MIT
61
+ metadata: {}
93
62
  post_install_message:
94
63
  rdoc_options: []
95
64
  require_paths:
96
65
  - lib
97
66
  required_ruby_version: !ruby/object:Gem::Requirement
98
- none: false
99
67
  requirements:
100
- - - ! '>='
68
+ - - '>='
101
69
  - !ruby/object:Gem::Version
102
70
  version: '0'
103
71
  required_rubygems_version: !ruby/object:Gem::Requirement
104
- none: false
105
72
  requirements:
106
- - - ! '>='
73
+ - - '>='
107
74
  - !ruby/object:Gem::Version
108
75
  version: '0'
109
76
  requirements: []
110
77
  rubyforge_project:
111
- rubygems_version: 1.8.23
78
+ rubygems_version: 2.0.3
112
79
  signing_key:
113
- specification_version: 3
114
- summary: Bindi is a DSL that marshals Ruby Objects and saves them to Redis using Ohm.
115
- test_files: []
80
+ specification_version: 4
81
+ summary: Serialize and store Ruby object in Redis.
82
+ test_files:
83
+ - test/bindi_test.rb
84
+ - test/helper.rb
116
85
  has_rdoc:
data.tar.gz.sig DELETED
@@ -1,6 +0,0 @@
1
- H��Q��~fs�
2
- H�g�z���k�P���'���3/Ęe�����{�^85
3
- ��L����j(��Hb�(k3n�T�[@���.tI+t�ܢHFښo�.� [9 �z9L7���m��
4
- �v��XX�^
5
- �@�@~��l%��}��<�bG��>�{'��x��{
6
- ;� �2}@��e��6��U�.�
metadata.gz.sig DELETED
Binary file