nest 3.1.2 → 3.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/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.
|