oxblood 0.1.0.dev1 → 0.1.0.dev2
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/.codeclimate.yml +16 -0
- data/.travis.yml +17 -0
- data/Gemfile +2 -0
- data/README.md +8 -0
- data/Rakefile +7 -0
- data/lib/oxblood/command.rb +46 -6
- data/lib/oxblood/session.rb +123 -18
- data/lib/oxblood/version.rb +1 -1
- data/oxblood.gemspec +1 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a00f0943e58421dc3712679260605e17607e709
|
4
|
+
data.tar.gz: 8cf70de44aaa9dc92d6c58c614781548ee3db53b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90fd668f8be2a153061537d565c0470f9202121b88bf64c8ee82e03b4d057d5a34a1cf6a7a989ffa225afba91406e7342901b9c696f7c2988ac6c0b56c4d3881
|
7
|
+
data.tar.gz: eab75bed05a363806827dffed9bcfe0f32b51d900fc4e31248eb1c42d44ebfc7549e61e3941e027854d345536b7d14fc9cfc84b5ea2ca91c0c7c64897c95684e
|
data/.codeclimate.yml
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
sudo: false
|
2
|
+
|
3
|
+
language: ruby
|
4
|
+
|
5
|
+
rvm:
|
6
|
+
- 2.2.5
|
7
|
+
- 2.3.1
|
8
|
+
- jruby-9.0.5.0
|
9
|
+
- jruby-9.1.2.0
|
10
|
+
|
11
|
+
services:
|
12
|
+
- redis-server
|
13
|
+
|
14
|
+
addons:
|
15
|
+
code_climate:
|
16
|
+
repo_token:
|
17
|
+
secure: ja+veIG40Hh2QJ75AQtT5Ip2a+SuiBTAQBRFtFEFiqGsXbkKjRw46qDumCIENCphkSjqnXcBYDhGUGjlXA3f4y6VSjr5+nw9PxvksvMnzEzT02UYs4OtqcBXuIH/F7UMylFFGmQmfnfxMOBGYn7ic5za9xGbzvgjwOnIl3x9kb2HW1cyKpH3tW/NgcRKJZjvJoQMOcMtaojtOdRc7wLypQdfDYW2NnvF338CVjSg7nAixNzRsCXgVa+ToeSLZWeg2pkT6Bt+sPwuFqPBybZEpWWe7NMUDtJuv610WPhBmWWnuQ/ncrTwOjs0DrUbQCofZb0EdSKy+JcqVTA57MP9X5s1okccdlXzFhnshFElKjCRE3As2IiAq0OINhRCJYYbUBac9MOJL+iZYEyhH6TydiwXJTvdHeKR39Fc2Em3ZiWCvsNqbvpP3/bEXDkZVeX6WfpKdlgeXo8VgtPj7ORyZpAQ234Ja685HpLpoSfRRFuHqZAhmUh42Hmy/IFgVtaj4Esvz3cwEhcZk4fzacAY+6uAKnJZQsi/DOwfJ68VSNTsoAgDBJiKpdBHB7k/XNG9yWQv1vcsWK3/UC8Os9lgTXcQg49CBaVb3+y9RReWjQzqQW9ACJfxuDXYhZKGgWEdl5FfuSLO65k2Iq1Qracf6vwutFN5a2McR0wtxqhAdYU=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Oxblood
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/oxblood)
|
4
|
+
[](https://codeclimate.com/github/etehtsea/oxblood)
|
5
|
+
[](https://codeclimate.com/github/etehtsea/oxblood/coverage)
|
6
|
+
[](https://codeclimate.com/github/etehtsea/oxblood)
|
7
|
+
|
3
8
|
An experimental Redis Ruby client.
|
4
9
|
|
5
10
|
## Usage
|
@@ -27,6 +32,9 @@ pool.with { |c| c.ping }
|
|
27
32
|
=> Redis::Connection::Oxblood
|
28
33
|
```
|
29
34
|
|
35
|
+
## Continuous Integration
|
36
|
+
|
37
|
+
[](https://travis-ci.org/etehtsea/oxblood)
|
30
38
|
|
31
39
|
## Contributing
|
32
40
|
|
data/Rakefile
CHANGED
data/lib/oxblood/command.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
module Oxblood
|
2
2
|
module Command
|
3
3
|
class << self
|
4
|
+
#
|
5
|
+
# Hashes
|
6
|
+
#
|
7
|
+
|
4
8
|
def hdel(key, fields)
|
5
9
|
serialize([:HDEL, key, fields])
|
6
10
|
end
|
@@ -9,20 +13,56 @@ module Oxblood
|
|
9
13
|
serialize([:HEXISTS, key, field])
|
10
14
|
end
|
11
15
|
|
12
|
-
def hmset(key, *args)
|
13
|
-
serialize(args.unshift(:HMSET, key))
|
14
|
-
end
|
15
|
-
|
16
16
|
def hget(key, field)
|
17
17
|
serialize([:HGET, key, field])
|
18
18
|
end
|
19
19
|
|
20
|
+
def hgetall(key)
|
21
|
+
serialize([:HGETALL, key])
|
22
|
+
end
|
23
|
+
|
24
|
+
def hincrby(key, field, increment)
|
25
|
+
serialize([:HINCRBY, key, field, increment])
|
26
|
+
end
|
27
|
+
|
28
|
+
def hincrbyfloat(key, field, increment)
|
29
|
+
serialize([:HINCRBYFLOAT, key, field, increment])
|
30
|
+
end
|
31
|
+
|
32
|
+
def hkeys(key)
|
33
|
+
serialize([:HKEYS, key])
|
34
|
+
end
|
35
|
+
|
36
|
+
def hlen(key)
|
37
|
+
serialize([:HLEN, key])
|
38
|
+
end
|
39
|
+
|
20
40
|
def hmget(key, *fields)
|
21
41
|
serialize(fields.unshift(:HMGET, key))
|
22
42
|
end
|
23
43
|
|
24
|
-
def
|
25
|
-
serialize(
|
44
|
+
def hmset(key, *args)
|
45
|
+
serialize(args.unshift(:HMSET, key))
|
46
|
+
end
|
47
|
+
|
48
|
+
def hset(key, field, value)
|
49
|
+
serialize([:HSET, key, field, value])
|
50
|
+
end
|
51
|
+
|
52
|
+
def hsetnx(key, field, value)
|
53
|
+
serialize([:HSETNX, key, field, value])
|
54
|
+
end
|
55
|
+
|
56
|
+
def hstrlen(key, field)
|
57
|
+
serialize([:HSTRLEN, key, field])
|
58
|
+
end
|
59
|
+
|
60
|
+
def hvals(key)
|
61
|
+
serialize([:HVALS, key])
|
62
|
+
end
|
63
|
+
|
64
|
+
def hscan(key, cursor)
|
65
|
+
raise 'Not implemented!'
|
26
66
|
end
|
27
67
|
|
28
68
|
# ------------------ Strings ---------------------
|
data/lib/oxblood/session.rb
CHANGED
@@ -7,7 +7,9 @@ module Oxblood
|
|
7
7
|
@connection = connection
|
8
8
|
end
|
9
9
|
|
10
|
-
#
|
10
|
+
#
|
11
|
+
# Hashes
|
12
|
+
#
|
11
13
|
|
12
14
|
# Removes the specified fields from the hash stored at key
|
13
15
|
# @see http://redis.io/commands/hdel
|
@@ -31,17 +33,6 @@ module Oxblood
|
|
31
33
|
1 == run(cmd.hexists(key, field))
|
32
34
|
end
|
33
35
|
|
34
|
-
# Set multiple hash fields to multiple values
|
35
|
-
# @see http://redis.io/commands/hmset
|
36
|
-
#
|
37
|
-
# @param [String] key under which store hash
|
38
|
-
# @param [[String, String], Array<[String, String]>] args fields and values
|
39
|
-
#
|
40
|
-
# @return [String] 'OK'
|
41
|
-
def hmset(key, *args)
|
42
|
-
run(cmd.hmset(key, *args))
|
43
|
-
end
|
44
|
-
|
45
36
|
# Get the value of a hash field
|
46
37
|
# @see http://redis.io/commands/hget
|
47
38
|
#
|
@@ -54,6 +45,62 @@ module Oxblood
|
|
54
45
|
run(cmd.hget(key, field))
|
55
46
|
end
|
56
47
|
|
48
|
+
# Get all the fields and values in a hash
|
49
|
+
# @see http://redis.io/commands/hgetall
|
50
|
+
#
|
51
|
+
# @param [String] key under which hash is stored
|
52
|
+
#
|
53
|
+
# @return [Hash] of fields and their values
|
54
|
+
def hgetall(key)
|
55
|
+
Hash[*run(cmd.hgetall(key))]
|
56
|
+
end
|
57
|
+
|
58
|
+
# Increment the integer value of a hash field by the given number
|
59
|
+
# @see http://redis.io/commands/hincrby
|
60
|
+
#
|
61
|
+
# @param [String] key under which hash is stored
|
62
|
+
# @param [String] field to increment
|
63
|
+
# @param [Integer] increment by value
|
64
|
+
#
|
65
|
+
# @return [Integer] the value at field after the increment operation
|
66
|
+
def hincrby(key, field, increment)
|
67
|
+
run(cmd.hincrby(key, field, increment))
|
68
|
+
end
|
69
|
+
|
70
|
+
# Increment the float value of a hash field by the given number
|
71
|
+
# @see http://redis.io/commands/hincrby
|
72
|
+
#
|
73
|
+
# @param [String] key under which hash is stored
|
74
|
+
# @param [String] field to increment
|
75
|
+
# @param [Integer] increment by value
|
76
|
+
#
|
77
|
+
# @return [String] the value of field after the increment
|
78
|
+
def hincrbyfloat(key, field, increment)
|
79
|
+
run(cmd.hincrbyfloat(key, field, increment))
|
80
|
+
end
|
81
|
+
|
82
|
+
# Get all the keys in a hash
|
83
|
+
# @see http://redis.io/commands/hkeys
|
84
|
+
#
|
85
|
+
# @param [String] key
|
86
|
+
#
|
87
|
+
# @return [Array] list of fields in the hash, or an empty list when
|
88
|
+
# key does not exist.
|
89
|
+
def hkeys(key)
|
90
|
+
run(cmd.hkeys(key))
|
91
|
+
end
|
92
|
+
|
93
|
+
# Get the number of keys in a hash
|
94
|
+
# @see http://redis.io/commands/hlen
|
95
|
+
#
|
96
|
+
# @param [String] key
|
97
|
+
#
|
98
|
+
# @return [Integer] number of fields in the hash, or 0 when
|
99
|
+
# key does not exist.
|
100
|
+
def hlen(key)
|
101
|
+
run(cmd.hlen(key))
|
102
|
+
end
|
103
|
+
|
57
104
|
# Get the field values of all given hash fields
|
58
105
|
# @see http://redis.io/commands/hmget
|
59
106
|
#
|
@@ -66,14 +113,72 @@ module Oxblood
|
|
66
113
|
run(cmd.hmget(key, *fields))
|
67
114
|
end
|
68
115
|
|
69
|
-
#
|
70
|
-
# @see http://redis.io/commands/
|
116
|
+
# Set multiple hash fields to multiple values
|
117
|
+
# @see http://redis.io/commands/hmset
|
71
118
|
#
|
72
|
-
# @param [String] key under which hash
|
119
|
+
# @param [String] key under which store hash
|
120
|
+
# @param [[String, String], Array<[String, String]>] args fields and values
|
73
121
|
#
|
74
|
-
# @return [
|
75
|
-
def
|
76
|
-
|
122
|
+
# @return [String] 'OK'
|
123
|
+
def hmset(key, *args)
|
124
|
+
run(cmd.hmset(key, *args))
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
# Set the string value of a hash field
|
129
|
+
# @see http://redis.io/commands/hset
|
130
|
+
#
|
131
|
+
# @param [String] key
|
132
|
+
# @param [String] field
|
133
|
+
# @param [String] value
|
134
|
+
#
|
135
|
+
# @return [Integer] 1 if field is a new field in the hash and value was set.
|
136
|
+
# 0 if field already exists in the hash and the value was updated.
|
137
|
+
def hset(key, field, value)
|
138
|
+
run(cmd.hset(key, field, value))
|
139
|
+
end
|
140
|
+
|
141
|
+
# Set the value of a hash field, only if the field does not exist
|
142
|
+
# @see http://redis.io/commands/hsetnx
|
143
|
+
#
|
144
|
+
# @param [String] key
|
145
|
+
# @param [String] field
|
146
|
+
# @param [String] value
|
147
|
+
#
|
148
|
+
# @return [Integer] 1 if field is a new field in the hash and value was set.
|
149
|
+
# 0 if field already exists in the hash and no operation was performed.
|
150
|
+
def hsetnx(key, field, value)
|
151
|
+
run(cmd.hsetnx(key, field, value))
|
152
|
+
end
|
153
|
+
|
154
|
+
# Get the length of the value of a hash field
|
155
|
+
# @see http://redis.io/commands/hstrlen
|
156
|
+
#
|
157
|
+
# @param [String] key
|
158
|
+
# @param [String] field
|
159
|
+
#
|
160
|
+
# @return [Integer] the string length of the value associated with field,
|
161
|
+
# or 0 when field is not present in the hash or key does not exist at all.
|
162
|
+
def hstrlen(key, field)
|
163
|
+
run(cmd.hstrlen(key, field))
|
164
|
+
end
|
165
|
+
|
166
|
+
# Get all values in a hash
|
167
|
+
# @see http://redis.io/commands/hvals
|
168
|
+
#
|
169
|
+
# @param [String] key
|
170
|
+
#
|
171
|
+
# @return [Array] list of values in the hash, or an empty list when
|
172
|
+
# key does not exist
|
173
|
+
def hvals(key)
|
174
|
+
run(cmd.hvals(key))
|
175
|
+
end
|
176
|
+
|
177
|
+
# Incrementally iterate hash fields and associated values
|
178
|
+
# @see http://redis.io/commands/hscan
|
179
|
+
#
|
180
|
+
# @todo Implement this command
|
181
|
+
def hscan(key, cursor)
|
77
182
|
end
|
78
183
|
|
79
184
|
# ------------------ Strings ---------------------
|
data/lib/oxblood/version.rb
CHANGED
data/oxblood.gemspec
CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
17
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
18
18
|
spec.require_paths = ['lib']
|
19
|
+
spec.required_ruby_version = '>= 2.2.2'
|
19
20
|
|
20
21
|
spec.add_dependency 'connection_pool'
|
21
22
|
spec.add_development_dependency 'bundler', '~> 1.11'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oxblood
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.dev2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Konstantin Shabanov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: connection_pool
|
@@ -101,8 +101,10 @@ executables: []
|
|
101
101
|
extensions: []
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
|
+
- ".codeclimate.yml"
|
104
105
|
- ".gitignore"
|
105
106
|
- ".rspec"
|
107
|
+
- ".travis.yml"
|
106
108
|
- ".yardopts"
|
107
109
|
- Gemfile
|
108
110
|
- LICENSE.txt
|
@@ -133,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
135
|
requirements:
|
134
136
|
- - ">="
|
135
137
|
- !ruby/object:Gem::Version
|
136
|
-
version:
|
138
|
+
version: 2.2.2
|
137
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
140
|
requirements:
|
139
141
|
- - ">"
|
@@ -141,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
143
|
version: 1.3.1
|
142
144
|
requirements: []
|
143
145
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.5.1
|
145
147
|
signing_key:
|
146
148
|
specification_version: 4
|
147
149
|
summary: A Ruby Redis client
|