nest 3.1.2 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +38 -0
- data/lib/nest.rb +13 -1
- data/nest.gemspec +1 -1
- data/test/nest_test.rb +22 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9685663900764bf070c2df77c922d49a941445cd44470ce4338c14888c03060f
|
4
|
+
data.tar.gz: 9043b9e906251c7c46dd8a8d7f7b3284e003e74a645601f4c63a7f36a011563c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd29444065af0d03560decee48b09657f2bc46ca7fa09991de602203e2057708d6fdf70bdea382a1cf4a5a1a6813223d722f25fd1599eb643fc745237afd82b3
|
7
|
+
data.tar.gz: 138cc5962e6fe7d8d4d38319c960104dc0a56a1408f47c4c4dafb362dd062959faa770150400202986f44ea965c1278f8e0137a89cb4f8a585c50050ec97f160
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -85,6 +85,44 @@ dealing with events:
|
|
85
85
|
=> ["Redis Meetup"]
|
86
86
|
```
|
87
87
|
|
88
|
+
API
|
89
|
+
---
|
90
|
+
|
91
|
+
`call`: Receives a Redis command and its arguments, and returns the
|
92
|
+
reply from the Redis server. If the reply from Redis is an error,
|
93
|
+
an instance of `RuntimeError` is returned.
|
94
|
+
|
95
|
+
`call!`: Similar to `call`, but instead of returning
|
96
|
+
an instance of `RuntimeError` when the command fails, the error is
|
97
|
+
raised.
|
98
|
+
|
99
|
+
`queue`: Receives the same kind of arguments as `call`, but enqueues
|
100
|
+
the command in a transaction.
|
101
|
+
|
102
|
+
`commit`: Commits the transaction and returns the reply from Redis.
|
103
|
+
|
104
|
+
Any call to a missing method will result in `Nest` converting the
|
105
|
+
method name to a Redis command and applying the arguments in an
|
106
|
+
invocation to `call`.
|
107
|
+
|
108
|
+
For example:
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
ns = Nest.new("foo")
|
112
|
+
ns.append("hello,")
|
113
|
+
ns.append(" world")
|
114
|
+
ns.get
|
115
|
+
```
|
116
|
+
|
117
|
+
Is equivalent to:
|
118
|
+
|
119
|
+
```ruby
|
120
|
+
ns = Nest.new("foo")
|
121
|
+
ns.call("APPEND", "hello,")
|
122
|
+
ns.call("APPEND", " world")
|
123
|
+
ns.call("GET")
|
124
|
+
```
|
125
|
+
|
88
126
|
Supplying your existing Redis instance
|
89
127
|
--------------------------------------
|
90
128
|
|
data/lib/nest.rb
CHANGED
@@ -33,7 +33,7 @@ class Nest
|
|
33
33
|
def redis
|
34
34
|
@rc
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def hash
|
38
38
|
@ns.hash
|
39
39
|
end
|
@@ -57,6 +57,18 @@ class Nest
|
|
57
57
|
@rc.call(command, to_s, *args)
|
58
58
|
end
|
59
59
|
|
60
|
+
def call!(command, *args)
|
61
|
+
@rc.call!(command, to_s, *args)
|
62
|
+
end
|
63
|
+
|
64
|
+
def queue(command, *args)
|
65
|
+
@rc.queue(command, to_s, *args)
|
66
|
+
end
|
67
|
+
|
68
|
+
def commit
|
69
|
+
@rc.commit
|
70
|
+
end
|
71
|
+
|
60
72
|
def inspect
|
61
73
|
@ns.inspect
|
62
74
|
end
|
data/nest.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "nest"
|
3
|
-
s.version = "3.
|
3
|
+
s.version = "3.2.0"
|
4
4
|
s.summary = "Object-oriented keys for Redis."
|
5
5
|
s.description = "It is a design pattern in key-value databases to use the key to simulate structure, and Nest can take care of that."
|
6
6
|
s.license = "MIT"
|
data/test/nest_test.rb
CHANGED
@@ -60,6 +60,28 @@ scope do
|
|
60
60
|
|
61
61
|
assert @redis.object_id == n1["bar"].redis.object_id
|
62
62
|
end
|
63
|
+
|
64
|
+
test "execute multiple redis commands in transaction" do
|
65
|
+
n1 = Nest.new("foo", @redis)
|
66
|
+
|
67
|
+
n1.queue("APPEND", "foo")
|
68
|
+
n1.queue("APPEND", "bar")
|
69
|
+
n1.commit
|
70
|
+
|
71
|
+
assert_equal "foobar", n1.get
|
72
|
+
end
|
73
|
+
|
74
|
+
test "raise error on redis failure when calling with bang" do
|
75
|
+
n1 = Nest.new("foo", @redis)
|
76
|
+
v1 = "234293482390480948029348230948"
|
77
|
+
|
78
|
+
n1.call("SET", v1)
|
79
|
+
|
80
|
+
assert_equal v1, n1.call!("GET")
|
81
|
+
assert_raise RuntimeError do
|
82
|
+
n1.call!("DECR")
|
83
|
+
end
|
84
|
+
end
|
63
85
|
end
|
64
86
|
|
65
87
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michel Martens
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redic
|
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
requirements: []
|
79
|
-
rubygems_version: 3.0.
|
79
|
+
rubygems_version: 3.0.2
|
80
80
|
signing_key:
|
81
81
|
specification_version: 4
|
82
82
|
summary: Object-oriented keys for Redis.
|