Skip to content

Commit

Permalink
Merge pull request #2 from soutaro/redis
Browse files Browse the repository at this point in the history
Add Redis
  • Loading branch information
soutaro authored Nov 14, 2020
2 parents 8ae459d + 5b8456e commit dda4958
Show file tree
Hide file tree
Showing 21 changed files with 356 additions and 28 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "gems/redis/4.2/_src"]
path = gems/redis/4.2/_src
url = https://github.com/redis/redis-rb.git
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
source "https://rubygems.org"

gem "rbs", git: "https://github.com/ruby/rbs.git", branch: "repo"
gem "steep", git: "https://github.com/soutaro/steep.git", branch: "update-rbs"
gem "rbs"
gem "steep"

gem "minitest"
40 changes: 14 additions & 26 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,24 +1,3 @@
GIT
remote: https://github.com/ruby/rbs.git
revision: 18635b273787ba0b8e0bd8f97ccb7a5de92b2c57
branch: repo
specs:
rbs (0.13.1)

GIT
remote: https://github.com/soutaro/steep.git
revision: 26bec8810e0784ddd8eb89649be84e0642924441
branch: update-rbs
specs:
steep (0.33.0)
activesupport (>= 5.1)
ast_utils (~> 0.3.0)
language_server-protocol (~> 3.15.0.1)
listen (~> 3.0)
parser (~> 2.7.0)
rainbow (>= 2.2.2, < 4.0)
rbs (~> 0.13.0)

GEM
remote: https://rubygems.org/
specs:
Expand All @@ -37,7 +16,7 @@ GEM
i18n (1.8.5)
concurrent-ruby (~> 1.0)
language_server-protocol (3.15.0.1)
listen (3.2.1)
listen (3.3.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
minitest (5.14.2)
Expand All @@ -47,19 +26,28 @@ GEM
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rbs (0.17.0)
steep (0.35.0)
activesupport (>= 5.1)
ast_utils (~> 0.3.0)
language_server-protocol (~> 3.15.0.1)
listen (~> 3.0)
parser (~> 2.7.0)
rainbow (>= 2.2.2, < 4.0)
rbs (~> 0.17.0)
thor (1.0.1)
thread_safe (0.3.6)
tzinfo (1.2.7)
tzinfo (1.2.8)
thread_safe (~> 0.1)
zeitwerk (2.4.0)
zeitwerk (2.4.1)

PLATFORMS
ruby

DEPENDENCIES
minitest
rbs!
steep!
rbs
steep

BUNDLED WITH
2.1.4
13 changes: 13 additions & 0 deletions gems/redis/4.2/_scripts/test
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
set -v

RBS_DIR=$(cd $(dirname $0)/..; pwd)
REPO_DIR=$(cd $(dirname $0)/../../..; pwd)
GEM=redis:4.2.0

bundle exec rbs --repo $REPO_DIR -r $GEM validate

cd ${RBS_DIR}/_test
bundle exec steep check
1 change: 1 addition & 0 deletions gems/redis/4.2/_src
Submodule _src added at cf44d7
8 changes: 8 additions & 0 deletions gems/redis/4.2/_test/Steepfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
target :test do
check "."

repo_path "../../../"
library "redis:4.2.0"

typing_options :strict
end
3 changes: 3 additions & 0 deletions gems/redis/4.2/_test/alternate_drivers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
redis = Redis.new(:driver => :hiredis)

redis = Redis.new(:driver => :synchrony)
10 changes: 10 additions & 0 deletions gems/redis/4.2/_test/cluster.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# @type var nodes: Array[Redis::node]

nodes = (7000..7005).map { |port| "redis://127.0.0.1:#{port}" }
redis = Redis.new(cluster: nodes)

nodes = (7000..7005).map do |port|
# @type block: Redis::node
{ host: '127.0.0.1', port: port }
end
redis = Redis.new(cluster: nodes)
11 changes: 11 additions & 0 deletions gems/redis/4.2/_test/error_handling.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
redis = Redis.new

begin
redis.ping
rescue StandardError => e
e.inspect
# => #<Redis::CannotConnectError: Timed out connecting to Redis on 10.0.1.1:6380>

e.message
# => Timed out connecting to Redis on 10.0.1.1:6380
end
1 change: 1 addition & 0 deletions gems/redis/4.2/_test/expert-mode-options.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Redis.new(inherit_socket: true)
7 changes: 7 additions & 0 deletions gems/redis/4.2/_test/get_set.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
redis = Redis.new

redis.set("mykey", "hello world")
# => "OK"

redis.get("mykey")
# => "hello world"
9 changes: 9 additions & 0 deletions gems/redis/4.2/_test/initialize.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
redis = Redis.new

redis = Redis.new(host: "10.0.1.1", port: 6380, db: 15)

redis = Redis.new(url: "redis://:[email protected]:6380/15")

redis = Redis.new(path: "/tmp/redis.sock")

redis = Redis.new(password: "mysecret")
7 changes: 7 additions & 0 deletions gems/redis/4.2/_test/mset_mget.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
redis = Redis.new(cluster: %w[redis://127.0.0.1:7000])

redis.mget('key1', 'key2')
#=> Redis::CommandError (CROSSSLOT Keys in request don't hash to the same slot)

redis.mget('{key}1', '{key}2')
#=> [nil, nil]
7 changes: 7 additions & 0 deletions gems/redis/4.2/_test/multi.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
redis = Redis.new

redis.multi do
redis.set "foo", "bar"
redis.incr "baz"
end
# => ["OK", 1]
16 changes: 16 additions & 0 deletions gems/redis/4.2/_test/pipeline.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
redis = Redis.new

# @type ivar @set: Redis::Future[String]
# @type ivar @incr: Redis::Future[Integer]

redis.pipelined do |redis|
@set = redis.set "foo", "bar"
@incr = redis.incr "baz"
end
# => ["OK", 1]

@set.value
# => "OK"

@incr.value
# => 1
5 changes: 5 additions & 0 deletions gems/redis/4.2/_test/reconnect.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Redis.new(
:reconnect_attempts => 10,
:reconnect_delay => 1.5,
:reconnect_delay_max => 10.0,
)
5 changes: 5 additions & 0 deletions gems/redis/4.2/_test/sentinels.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
redis = Redis.new(
url: "redis://mymaster",
sentinels: [{ host: "127.0.0.1", port: 26380 }, { host: "127.0.0.1", port: 26381, password: "mysecret" }],
role: :master
)
21 changes: 21 additions & 0 deletions gems/redis/4.2/_test/ssl.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# @type const OpenSSL: untyped
# @type const OpenSSL::X509: untyped
# @type const OpenSSL::X509::Certificate: untyped
# @type const OpenSSL::PKey::RSA: untyped
# @type const OpenSSL::PKey: untyped

redis = Redis.new(
:url => "rediss://:[email protected]:6381/15",
:ssl_params => {
:ca_file => "/path/to/ca.crt"
}
)

redis = Redis.new(
:url => "rediss://:[email protected]:6381/15",
:ssl_params => {
:ca_file => "/path/to/ca.crt",
:cert => OpenSSL::X509::Certificate.new(File.read("client.crt")),
:key => OpenSSL::PKey::RSA.new(File.read("client.key"))
}
)
7 changes: 7 additions & 0 deletions gems/redis/4.2/_test/timeout.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Redis.new(:timeout => 1)

Redis.new(
:connect_timeout => 0.2,
:read_timeout => 1.0,
:write_timeout => 0.5
)
5 changes: 5 additions & 0 deletions gems/redis/4.2/future.rbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class Redis
class Future[out T]
attr_reader value: T
end
end
Loading

0 comments on commit dda4958

Please sign in to comment.