Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Redis #2

Merged
merged 2 commits into from
Nov 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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