shoryuken 5.3.2 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.devcontainer/Dockerfile +17 -0
- data/.devcontainer/base.Dockerfile +43 -0
- data/.devcontainer/devcontainer.json +35 -0
- data/.github/workflows/stale.yml +20 -0
- data/CHANGELOG.md +6 -0
- data/lib/shoryuken/environment_loader.rb +6 -2
- data/lib/shoryuken/runner.rb +0 -3
- data/lib/shoryuken/version.rb +1 -1
- data/spec/shoryuken/environment_loader_spec.rb +3 -3
- data/spec/shoryuken/manager_spec.rb +10 -6
- data/spec/shoryuken/queue_spec.rb +10 -5
- data/spec/shoryuken/worker/default_executor_spec.rb +48 -48
- metadata +10 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47b6564c21a283ca5d0cd71f7f59b36b9c99776a541b2a51c61a9fd5b590be08
|
4
|
+
data.tar.gz: cf94b4ba4d9b296e0af112704cbe0ecd201f57726c284c790351f79a23680c7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d037b9887326e63ba1c8659a56e7707cf07b7a1a7d9f5027df7fb759d2896035335bc877487a346d7cac59e7b1916a8f5dc967e4431445b1e7ca9f6778282f7b
|
7
|
+
data.tar.gz: 4e0dd25a40a86a09ea87b0187d7f9f3d8525031b40830b47b29b434b688459e60209d7f8e4adb7d6c5deeedfb63b4139bceb0e38762b7fbf0dab884c1023063c
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster
|
2
|
+
ARG VARIANT=2-bullseye
|
3
|
+
FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
|
4
|
+
|
5
|
+
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
|
6
|
+
ARG NODE_VERSION="none"
|
7
|
+
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
|
8
|
+
|
9
|
+
# [Optional] Uncomment this section to install additional OS packages.
|
10
|
+
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
11
|
+
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
12
|
+
|
13
|
+
# [Optional] Uncomment this line to install additional gems.
|
14
|
+
# RUN gem install <your-gem-names-here>
|
15
|
+
|
16
|
+
# [Optional] Uncomment this line to install global node packages.
|
17
|
+
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster
|
2
|
+
ARG VARIANT=2-bullseye
|
3
|
+
FROM ruby:${VARIANT}
|
4
|
+
|
5
|
+
# Copy library scripts to execute
|
6
|
+
COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/
|
7
|
+
|
8
|
+
# [Option] Install zsh
|
9
|
+
ARG INSTALL_ZSH="true"
|
10
|
+
# [Option] Upgrade OS packages to their latest versions
|
11
|
+
ARG UPGRADE_PACKAGES="true"
|
12
|
+
# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
|
13
|
+
ARG USERNAME=vscode
|
14
|
+
ARG USER_UID=1000
|
15
|
+
ARG USER_GID=$USER_UID
|
16
|
+
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
17
|
+
# Remove imagemagick due to https://security-tracker.debian.org/tracker/CVE-2019-10131
|
18
|
+
&& apt-get purge -y imagemagick imagemagick-6-common \
|
19
|
+
# Install common packages, non-root user, rvm, core build tools
|
20
|
+
&& bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" "true" "true" \
|
21
|
+
&& bash /tmp/library-scripts/ruby-debian.sh "none" "${USERNAME}" "true" "true" \
|
22
|
+
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
|
23
|
+
|
24
|
+
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
|
25
|
+
ARG NODE_VERSION="none"
|
26
|
+
ENV NVM_DIR=/usr/local/share/nvm
|
27
|
+
ENV NVM_SYMLINK_CURRENT=true \
|
28
|
+
PATH=${NVM_DIR}/current/bin:${PATH}
|
29
|
+
RUN bash /tmp/library-scripts/node-debian.sh "${NVM_DIR}" "${NODE_VERSION}" "${USERNAME}" \
|
30
|
+
&& apt-get clean -y && rm -rf /var/lib/apt/lists/*
|
31
|
+
|
32
|
+
# Remove library scripts for final image
|
33
|
+
RUN rm -rf /tmp/library-scripts
|
34
|
+
|
35
|
+
# [Optional] Uncomment this section to install additional OS packages.
|
36
|
+
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
37
|
+
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
38
|
+
|
39
|
+
# [Optional] Uncomment this line to install additional gems.
|
40
|
+
# RUN gem install <your-gem-names-here>
|
41
|
+
|
42
|
+
# [Optional] Uncomment this line to install global node packages.
|
43
|
+
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
2
|
+
// https://github.com/microsoft/vscode-dev-containers/tree/v0.224.3/containers/ruby
|
3
|
+
{
|
4
|
+
"name": "Ruby",
|
5
|
+
"build": {
|
6
|
+
"dockerfile": "Dockerfile",
|
7
|
+
"args": {
|
8
|
+
// Update 'VARIANT' to pick a Ruby version: 3, 3.1, 3.0, 2, 2.7, 2.6
|
9
|
+
// Append -bullseye or -buster to pin to an OS version.
|
10
|
+
// Use -bullseye variants on local on arm64/Apple Silicon.
|
11
|
+
"VARIANT": "3-bullseye",
|
12
|
+
// Options
|
13
|
+
"NODE_VERSION": "none"
|
14
|
+
}
|
15
|
+
},
|
16
|
+
|
17
|
+
// Set *default* container specific settings.json values on container create.
|
18
|
+
"settings": {},
|
19
|
+
|
20
|
+
// Add the IDs of extensions you want installed when the container is created.
|
21
|
+
"extensions": ["rebornix.Ruby"],
|
22
|
+
|
23
|
+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
24
|
+
// "forwardPorts": [],
|
25
|
+
|
26
|
+
// Use 'postCreateCommand' to run commands after the container is created.
|
27
|
+
// "postCreateCommand": "ruby --version",
|
28
|
+
|
29
|
+
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
30
|
+
"remoteUser": "vscode",
|
31
|
+
"features": {
|
32
|
+
"github-cli": "latest",
|
33
|
+
"aws-cli": "latest"
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
name: "Close stale issues and PRs"
|
2
|
+
on:
|
3
|
+
schedule:
|
4
|
+
- cron: "30 1 * * *" # At 01:30 - https://crontab.guru/#30_1_*_*_*
|
5
|
+
workflow_dispatch: {}
|
6
|
+
jobs:
|
7
|
+
stale:
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
permissions:
|
10
|
+
issues: write
|
11
|
+
pull-requests: write
|
12
|
+
steps:
|
13
|
+
- uses: actions/stale@v4
|
14
|
+
with:
|
15
|
+
stale-issue-message: This issue is now marked as stale because it hasn't seen activity for a while. Add a comment or it will be closed soon.
|
16
|
+
stale-pr-message: This PR is now marked as stale because it hasn't seen activity for a while. Add a comment or it will be closed soon.
|
17
|
+
close-issue-message: This issue was closed because it hasn't seen activity for a while.
|
18
|
+
close-pr-message: This PR was closed because it hasn't seen activity for a while.
|
19
|
+
days-before-stale: 60
|
20
|
+
days-before-close: 7
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## [v6.0.0] - 2022-02-18
|
2
|
+
|
3
|
+
- Breaking changes: Initialize Rails before parsing config file
|
4
|
+
- [#686](https://github.com/ruby-shoryuken/shoryuken/pull/686)
|
5
|
+
- Previously, Shoryuken read its configuration from an optional YAML file, then allowed CLI arguments to override those, then initialized the Rails application (provided that `--rails` or `-R` was specified). This behavior meant that the config file did not have access to things like environment variables that were initialized by Rails (such as when using `dotenv`). With this change, Rails is initialized much earlier in the process. After Rails is initialized, the YAML configuration file is interpreted, and CLI arguments are finally interpreted last. Most applications will not need to undergo changes in order to upgrade, but the new load order could technically result in different behavior depending on the application's YAML configuration file or Rails initializers.
|
6
|
+
|
1
7
|
## [v5.3.2] - 2022-01-19
|
2
8
|
|
3
9
|
- (Bugfix) Preserve queue weights when unpausing queues
|
@@ -18,12 +18,12 @@ module Shoryuken
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def setup_options
|
21
|
+
initialize_rails if load_rails?
|
21
22
|
initialize_options
|
22
23
|
initialize_logger
|
23
24
|
end
|
24
25
|
|
25
26
|
def load
|
26
|
-
load_rails if Shoryuken.options[:rails]
|
27
27
|
prefix_active_job_queue_names
|
28
28
|
parse_queues
|
29
29
|
require_workers
|
@@ -55,7 +55,7 @@ module Shoryuken
|
|
55
55
|
Shoryuken.logger.level = Logger::DEBUG if Shoryuken.options[:verbose]
|
56
56
|
end
|
57
57
|
|
58
|
-
def
|
58
|
+
def initialize_rails
|
59
59
|
# Adapted from: https://github.com/mperham/sidekiq/blob/master/lib/sidekiq/cli.rb
|
60
60
|
|
61
61
|
require 'rails'
|
@@ -79,6 +79,10 @@ module Shoryuken
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
|
+
def load_rails?
|
83
|
+
options[:rails]
|
84
|
+
end
|
85
|
+
|
82
86
|
def prefix_active_job_queue_name(queue_name, weight)
|
83
87
|
return [queue_name, weight] if queue_name.start_with?('https://', 'arn:')
|
84
88
|
|
data/lib/shoryuken/runner.rb
CHANGED
data/lib/shoryuken/version.rb
CHANGED
@@ -36,7 +36,7 @@ RSpec.describe Shoryuken::EnvironmentLoader do
|
|
36
36
|
|
37
37
|
describe '#parse_queues loads default queues' do
|
38
38
|
before do
|
39
|
-
allow(subject).to receive(:
|
39
|
+
allow(subject).to receive(:initialize_rails)
|
40
40
|
allow(subject).to receive(:prefix_active_job_queue_names)
|
41
41
|
allow(subject).to receive(:require_workers)
|
42
42
|
allow(subject).to receive(:validate_queues)
|
@@ -54,7 +54,7 @@ RSpec.describe Shoryuken::EnvironmentLoader do
|
|
54
54
|
|
55
55
|
describe '#parse_queues includes delay per groups' do
|
56
56
|
before do
|
57
|
-
allow(subject).to receive(:
|
57
|
+
allow(subject).to receive(:initialize_rails)
|
58
58
|
allow(subject).to receive(:prefix_active_job_queue_names)
|
59
59
|
allow(subject).to receive(:require_workers)
|
60
60
|
allow(subject).to receive(:validate_queues)
|
@@ -76,7 +76,7 @@ RSpec.describe Shoryuken::EnvironmentLoader do
|
|
76
76
|
|
77
77
|
describe '#prefix_active_job_queue_names' do
|
78
78
|
before do
|
79
|
-
allow(subject).to receive(:
|
79
|
+
allow(subject).to receive(:initialize_rails)
|
80
80
|
allow(subject).to receive(:require_workers)
|
81
81
|
allow(subject).to receive(:validate_queues)
|
82
82
|
allow(subject).to receive(:validate_workers)
|
@@ -73,9 +73,11 @@ RSpec.describe Shoryuken::Manager do
|
|
73
73
|
expect(subject).to receive(:fire_event).with(:dispatch, false, queue_name: q.name)
|
74
74
|
expect(subject).to receive(:fire_event).with(:utilization_update,
|
75
75
|
false,
|
76
|
-
|
77
|
-
|
78
|
-
|
76
|
+
{
|
77
|
+
group: 'default',
|
78
|
+
busy_processors: 1,
|
79
|
+
max_processors: 1
|
80
|
+
})
|
79
81
|
expect(Shoryuken::Processor).to receive(:process).with(q, message)
|
80
82
|
expect(Shoryuken.logger).to receive(:info).never
|
81
83
|
|
@@ -106,9 +108,11 @@ RSpec.describe Shoryuken::Manager do
|
|
106
108
|
expect(fetcher).to receive(:fetch).with(q, described_class::BATCH_LIMIT).and_return(messages)
|
107
109
|
expect(subject).to receive(:fire_event).with(:utilization_update,
|
108
110
|
false,
|
109
|
-
|
110
|
-
|
111
|
-
|
111
|
+
{
|
112
|
+
group: 'default',
|
113
|
+
busy_processors: 1,
|
114
|
+
max_processors: 1
|
115
|
+
})
|
112
116
|
expect(subject).to receive(:fire_event).with(:dispatch, false, queue_name: q.name)
|
113
117
|
allow(subject).to receive(:batched_queue?).with(q).and_return(true)
|
114
118
|
expect(Shoryuken::Processor).to receive(:process).with(q, messages)
|
@@ -80,7 +80,8 @@ RSpec.describe Shoryuken::Queue do
|
|
80
80
|
end
|
81
81
|
|
82
82
|
it 'deletes' do
|
83
|
-
expect(sqs).to receive(:delete_message_batch).with(entries: entries,
|
83
|
+
expect(sqs).to receive(:delete_message_batch).with({ entries: entries,
|
84
|
+
queue_url: queue_url }).and_return(double(failed: []))
|
84
85
|
|
85
86
|
subject.delete_messages(entries: entries)
|
86
87
|
end
|
@@ -91,7 +92,8 @@ RSpec.describe Shoryuken::Queue do
|
|
91
92
|
logger = double 'Logger'
|
92
93
|
|
93
94
|
expect(sqs).to(
|
94
|
-
receive(:delete_message_batch).with(entries: entries,
|
95
|
+
receive(:delete_message_batch).with({ entries: entries,
|
96
|
+
queue_url: queue_url }).and_return(double(failed: [failure]))
|
95
97
|
)
|
96
98
|
expect(subject).to receive(:logger).and_return(logger)
|
97
99
|
expect(logger).to receive(:error)
|
@@ -157,7 +159,8 @@ RSpec.describe Shoryuken::Queue do
|
|
157
159
|
it 'accepts SQS request parameters' do
|
158
160
|
# https://docs.aws.amazon.com/sdkforruby/api/Aws/SQS/Client.html#send_message_batch-instance_method
|
159
161
|
expect(sqs).to(
|
160
|
-
receive(:send_message_batch).with(hash_including(entries: [{ id: '0', message_body: 'msg1' },
|
162
|
+
receive(:send_message_batch).with(hash_including(entries: [{ id: '0', message_body: 'msg1' },
|
163
|
+
{ id: '1', message_body: 'msg2' }]))
|
161
164
|
)
|
162
165
|
|
163
166
|
subject.send_messages(entries: [{ id: '0', message_body: 'msg1' }, { id: '1', message_body: 'msg2' }])
|
@@ -286,7 +289,8 @@ RSpec.describe Shoryuken::Queue do
|
|
286
289
|
Shoryuken.cache_visibility_timeout = false
|
287
290
|
|
288
291
|
expect(sqs).to(
|
289
|
-
receive(:get_queue_attributes).with(queue_url: queue_url,
|
292
|
+
receive(:get_queue_attributes).with(queue_url: queue_url,
|
293
|
+
attribute_names: ['All']).and_return(attribute_response).exactly(3).times
|
290
294
|
)
|
291
295
|
expect(subject.visibility_timeout).to eq(30)
|
292
296
|
expect(subject.visibility_timeout).to eq(30)
|
@@ -299,7 +303,8 @@ RSpec.describe Shoryuken::Queue do
|
|
299
303
|
Shoryuken.cache_visibility_timeout = true
|
300
304
|
|
301
305
|
expect(sqs).to(
|
302
|
-
receive(:get_queue_attributes).with(queue_url: queue_url,
|
306
|
+
receive(:get_queue_attributes).with({ queue_url: queue_url,
|
307
|
+
attribute_names: ['All'] }).and_return(attribute_response).once
|
303
308
|
)
|
304
309
|
expect(subject.visibility_timeout).to eq(30)
|
305
310
|
expect(subject.visibility_timeout).to eq(30)
|
@@ -10,16 +10,16 @@ RSpec.describe Shoryuken::Worker::DefaultExecutor do
|
|
10
10
|
|
11
11
|
describe '.perform_in' do
|
12
12
|
it 'delays a message' do
|
13
|
-
expect(sqs_queue).to receive(:send_message).with(
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
expect(sqs_queue).to receive(:send_message).with({
|
14
|
+
message_attributes: {
|
15
|
+
'shoryuken_class' => {
|
16
|
+
string_value: TestWorker.to_s,
|
17
|
+
data_type: 'String'
|
18
|
+
}
|
19
|
+
},
|
20
|
+
message_body: 'message',
|
21
|
+
delay_seconds: 60
|
22
|
+
})
|
23
23
|
|
24
24
|
TestWorker.perform_in(60, 'message')
|
25
25
|
end
|
@@ -33,16 +33,16 @@ RSpec.describe Shoryuken::Worker::DefaultExecutor do
|
|
33
33
|
|
34
34
|
describe '.perform_at' do
|
35
35
|
it 'delays a message' do
|
36
|
-
expect(sqs_queue).to receive(:send_message).with(
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
36
|
+
expect(sqs_queue).to receive(:send_message).with({
|
37
|
+
message_attributes: {
|
38
|
+
'shoryuken_class' => {
|
39
|
+
string_value: TestWorker.to_s,
|
40
|
+
data_type: 'String'
|
41
|
+
}
|
42
|
+
},
|
43
|
+
message_body: 'message',
|
44
|
+
delay_seconds: 60
|
45
|
+
})
|
46
46
|
|
47
47
|
TestWorker.perform_in(Time.now + 60, 'message')
|
48
48
|
end
|
@@ -56,30 +56,30 @@ RSpec.describe Shoryuken::Worker::DefaultExecutor do
|
|
56
56
|
|
57
57
|
describe '.perform_async' do
|
58
58
|
it 'enqueues a message' do
|
59
|
-
expect(sqs_queue).to receive(:send_message).with(
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
59
|
+
expect(sqs_queue).to receive(:send_message).with({
|
60
|
+
message_attributes: {
|
61
|
+
'shoryuken_class' => {
|
62
|
+
string_value: TestWorker.to_s,
|
63
|
+
data_type: 'String'
|
64
|
+
}
|
65
|
+
},
|
66
|
+
message_body: 'message'
|
67
|
+
})
|
68
68
|
|
69
69
|
TestWorker.perform_async('message')
|
70
70
|
end
|
71
71
|
|
72
72
|
it 'enqueues a message with options' do
|
73
|
-
expect(sqs_queue).to receive(:send_message).with(
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
73
|
+
expect(sqs_queue).to receive(:send_message).with({
|
74
|
+
delay_seconds: 60,
|
75
|
+
message_attributes: {
|
76
|
+
'shoryuken_class' => {
|
77
|
+
string_value: TestWorker.to_s,
|
78
|
+
data_type: 'String'
|
79
|
+
}
|
80
|
+
},
|
81
|
+
message_body: 'delayed message'
|
82
|
+
})
|
83
83
|
|
84
84
|
TestWorker.perform_async('delayed message', delay_seconds: 60)
|
85
85
|
end
|
@@ -89,15 +89,15 @@ RSpec.describe Shoryuken::Worker::DefaultExecutor do
|
|
89
89
|
|
90
90
|
expect(Shoryuken::Client).to receive(:queues).with(new_queue).and_return(sqs_queue)
|
91
91
|
|
92
|
-
expect(sqs_queue).to receive(:send_message).with(
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
92
|
+
expect(sqs_queue).to receive(:send_message).with({
|
93
|
+
message_attributes: {
|
94
|
+
'shoryuken_class' => {
|
95
|
+
string_value: TestWorker.to_s,
|
96
|
+
data_type: 'String'
|
97
|
+
}
|
98
|
+
},
|
99
|
+
message_body: 'delayed message'
|
100
|
+
})
|
101
101
|
|
102
102
|
TestWorker.perform_async('delayed message', queue: new_queue)
|
103
103
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoryuken
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pablo Cantero
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -103,8 +103,12 @@ extensions: []
|
|
103
103
|
extra_rdoc_files: []
|
104
104
|
files:
|
105
105
|
- ".codeclimate.yml"
|
106
|
+
- ".devcontainer/Dockerfile"
|
107
|
+
- ".devcontainer/base.Dockerfile"
|
108
|
+
- ".devcontainer/devcontainer.json"
|
106
109
|
- ".github/FUNDING.yml"
|
107
110
|
- ".github/workflows/specs.yml"
|
111
|
+
- ".github/workflows/stale.yml"
|
108
112
|
- ".gitignore"
|
109
113
|
- ".reek.yml"
|
110
114
|
- ".rspec"
|
@@ -199,7 +203,7 @@ homepage: https://github.com/phstc/shoryuken
|
|
199
203
|
licenses:
|
200
204
|
- LGPL-3.0
|
201
205
|
metadata: {}
|
202
|
-
post_install_message:
|
206
|
+
post_install_message:
|
203
207
|
rdoc_options: []
|
204
208
|
require_paths:
|
205
209
|
- lib
|
@@ -214,8 +218,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
218
|
- !ruby/object:Gem::Version
|
215
219
|
version: '0'
|
216
220
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
218
|
-
signing_key:
|
221
|
+
rubygems_version: 3.1.2
|
222
|
+
signing_key:
|
219
223
|
specification_version: 4
|
220
224
|
summary: Shoryuken is a super efficient AWS SQS thread based message processor
|
221
225
|
test_files:
|