sidekiq 4.2.10 → 5.2.7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sidekiq might be problematic. Click here for more details.

Files changed (75) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +61 -0
  3. data/.github/issue_template.md +3 -1
  4. data/.gitignore +3 -0
  5. data/.travis.yml +6 -13
  6. data/5.0-Upgrade.md +56 -0
  7. data/COMM-LICENSE +12 -10
  8. data/Changes.md +158 -1
  9. data/Ent-Changes.md +67 -2
  10. data/Gemfile +14 -20
  11. data/LICENSE +1 -1
  12. data/Pro-4.0-Upgrade.md +35 -0
  13. data/Pro-Changes.md +133 -2
  14. data/README.md +8 -6
  15. data/Rakefile +2 -5
  16. data/bin/sidekiqctl +13 -92
  17. data/bin/sidekiqload +5 -10
  18. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +1 -1
  19. data/lib/sidekiq.rb +27 -27
  20. data/lib/sidekiq/api.rb +145 -57
  21. data/lib/sidekiq/cli.rb +120 -81
  22. data/lib/sidekiq/client.rb +25 -18
  23. data/lib/sidekiq/core_ext.rb +1 -119
  24. data/lib/sidekiq/ctl.rb +221 -0
  25. data/lib/sidekiq/delay.rb +42 -0
  26. data/lib/sidekiq/exception_handler.rb +2 -4
  27. data/lib/sidekiq/extensions/generic_proxy.rb +7 -1
  28. data/lib/sidekiq/fetch.rb +1 -1
  29. data/lib/sidekiq/job_logger.rb +25 -0
  30. data/lib/sidekiq/job_retry.rb +262 -0
  31. data/lib/sidekiq/launcher.rb +19 -19
  32. data/lib/sidekiq/logging.rb +18 -2
  33. data/lib/sidekiq/manager.rb +5 -6
  34. data/lib/sidekiq/middleware/server/active_record.rb +10 -0
  35. data/lib/sidekiq/processor.rb +126 -48
  36. data/lib/sidekiq/rails.rb +8 -73
  37. data/lib/sidekiq/redis_connection.rb +43 -5
  38. data/lib/sidekiq/scheduled.rb +35 -8
  39. data/lib/sidekiq/testing.rb +16 -7
  40. data/lib/sidekiq/util.rb +5 -2
  41. data/lib/sidekiq/version.rb +1 -1
  42. data/lib/sidekiq/web.rb +4 -4
  43. data/lib/sidekiq/web/action.rb +2 -6
  44. data/lib/sidekiq/web/application.rb +33 -16
  45. data/lib/sidekiq/web/helpers.rb +69 -22
  46. data/lib/sidekiq/web/router.rb +10 -10
  47. data/lib/sidekiq/worker.rb +118 -19
  48. data/sidekiq.gemspec +6 -17
  49. data/web/assets/javascripts/application.js +0 -0
  50. data/web/assets/javascripts/dashboard.js +32 -17
  51. data/web/assets/stylesheets/application-rtl.css +246 -0
  52. data/web/assets/stylesheets/application.css +371 -6
  53. data/web/assets/stylesheets/bootstrap-rtl.min.css +9 -0
  54. data/web/assets/stylesheets/bootstrap.css +2 -2
  55. data/web/locales/ar.yml +81 -0
  56. data/web/locales/en.yml +2 -0
  57. data/web/locales/es.yml +4 -3
  58. data/web/locales/fa.yml +1 -0
  59. data/web/locales/he.yml +79 -0
  60. data/web/locales/ja.yml +5 -3
  61. data/web/locales/ur.yml +80 -0
  62. data/web/views/_footer.erb +5 -2
  63. data/web/views/_nav.erb +4 -18
  64. data/web/views/_paging.erb +1 -1
  65. data/web/views/busy.erb +9 -5
  66. data/web/views/dashboard.erb +1 -1
  67. data/web/views/layout.erb +11 -2
  68. data/web/views/morgue.erb +4 -4
  69. data/web/views/queue.erb +8 -7
  70. data/web/views/queues.erb +2 -0
  71. data/web/views/retries.erb +9 -5
  72. data/web/views/scheduled.erb +2 -2
  73. metadata +31 -160
  74. data/lib/sidekiq/middleware/server/logging.rb +0 -31
  75. data/lib/sidekiq/middleware/server/retry_jobs.rb +0 -205
@@ -1,11 +1,20 @@
1
1
  <!doctype html>
2
- <html>
2
+ <html dir="<%= text_direction %>">
3
3
  <head>
4
4
  <title><%= environment_title_prefix %><%= Sidekiq::NAME %></title>
5
- <meta charset="utf8" />
5
+ <meta charset="utf-8" />
6
6
  <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
+
7
8
  <link href="<%= root_path %>stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
9
+ <% if rtl? %>
10
+ <link href="<%= root_path %>stylesheets/bootstrap-rtl.min.css" media="screen" rel="stylesheet" type="text/css"/>
11
+ <% end %>
12
+
8
13
  <link href="<%= root_path %>stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
14
+ <% if rtl? %>
15
+ <link href="<%= root_path %>stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" />
16
+ <% end %>
17
+
9
18
  <link rel="shortcut icon" type="image/ico" href="<%= root_path %>images/favicon.ico" />
10
19
  <script type="text/javascript" src="<%= root_path %>javascripts/application.js"></script>
11
20
  <meta name="google" content="notranslate" />
@@ -55,18 +55,18 @@
55
55
  <% end %>
56
56
  </table>
57
57
  </div>
58
- <input class="btn btn-primary btn-xs pull-left" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
- <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="<%= t('Delete') %>" />
58
+ <input class="btn btn-primary btn-xs pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
+ <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
60
60
  </form>
61
61
 
62
62
  <% unfiltered? do %>
63
63
  <form action="<%= root_path %>morgue/all/delete" method="post">
64
64
  <%= csrf_tag %>
65
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
65
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
66
  </form>
67
67
  <form action="<%= root_path %>morgue/all/retry" method="post">
68
68
  <%= csrf_tag %>
69
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
69
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
70
  </form>
71
71
  <% end %>
72
72
 
@@ -5,9 +5,10 @@
5
5
  <% if @queue.paused? %>
6
6
  <span class="label label-danger"><%= t('Paused') %></span>
7
7
  <% end %>
8
+ <span class="badge badge-secondary"><%= number_with_delimiter(@total_size) %></span>
8
9
  </h3>
9
10
  </div>
10
- <div class="col-sm-4 pull-right">
11
+ <div class="col-sm-4 pull-right flip">
11
12
  <%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
12
13
  </div>
13
14
  </header>
@@ -22,19 +23,19 @@
22
23
  <tr>
23
24
  <td><%= h(msg.display_class) %></td>
24
25
  <td>
25
- <% a = msg.display_args.inspect %>
26
- <% if a.size > 100 %>
27
- <span class="worker_<%= index %>"><%= h(msg.display_args.inspect[0..100]) + "... " %></span>
26
+ <% a = msg.display_args %>
27
+ <% if a.inspect.size > 100 %>
28
+ <span class="worker_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
28
29
  <button data-toggle="collapse" data-target=".worker_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
29
- <div class="toggle worker_<%= index %>"><%= h(msg.display_args) %></div>
30
+ <div class="toggle worker_<%= index %>"><%= display_args(a) %></div>
30
31
  <% else %>
31
- <%= h(msg.display_args) %>
32
+ <%= display_args(msg.display_args) %>
32
33
  <% end %>
33
34
  </td>
34
35
  <td>
35
36
  <form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
36
37
  <%= csrf_tag %>
37
- <input name="key_val" value="<%= h Sidekiq.dump_json(msg.item) %>" type="hidden" />
38
+ <input name="key_val" value="<%= h msg.value %>" type="hidden" />
38
39
  <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
39
40
  </form>
40
41
  </td>
@@ -5,6 +5,7 @@
5
5
  <thead>
6
6
  <th><%= t('Queue') %></th>
7
7
  <th><%= t('Size') %></th>
8
+ <th><%= t('Latency') %></th>
8
9
  <th><%= t('Actions') %></th>
9
10
  </thead>
10
11
  <% @queues.each do |queue| %>
@@ -16,6 +17,7 @@
16
17
  <% end %>
17
18
  </td>
18
19
  <td><%= number_with_delimiter(queue.size) %> </td>
20
+ <td><% queue_latency = queue.latency %><%= number_with_delimiter(queue_latency.round(2)) %><%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %> </td>
19
21
  <td class="delete-confirm">
20
22
  <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
21
23
  <%= csrf_tag %>
@@ -55,19 +55,23 @@
55
55
  <% end %>
56
56
  </table>
57
57
  </div>
58
- <input class="btn btn-primary btn-xs pull-left" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
- <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="<%= t('Delete') %>" />
60
- <input class="btn btn-danger btn-xs pull-left" type="submit" name="kill" value="<%= t('Kill') %>" />
58
+ <input class="btn btn-primary btn-xs pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
+ <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
60
+ <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="kill" value="<%= t('Kill') %>" />
61
61
  </form>
62
62
 
63
63
  <% unfiltered? do %>
64
64
  <form action="<%= root_path %>retries/all/delete" method="post">
65
65
  <%= csrf_tag %>
66
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
67
67
  </form>
68
68
  <form action="<%= root_path %>retries/all/retry" method="post">
69
69
  <%= csrf_tag %>
70
- <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
71
+ </form>
72
+ <form action="<%= root_path %>retries/all/kill" method="post">
73
+ <%= csrf_tag %>
74
+ <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
71
75
  </form>
72
76
  <% end %>
73
77
 
@@ -46,8 +46,8 @@
46
46
  <% end %>
47
47
  </table>
48
48
  </div>
49
- <input class="btn btn-danger pull-right" type="submit" name="delete" value="<%= t('Delete') %>" />
50
- <input class="btn btn-danger pull-right" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
49
+ <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('Delete') %>" />
50
+ <input class="btn btn-danger pull-right flip" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
51
51
  </form>
52
52
  <% else %>
53
53
  <div class="alert alert-success"><%= t('NoScheduledFound') %></div>
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.10
4
+ version: 5.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-17 00:00:00.000000000 Z
11
+ date: 2019-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '3.2'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 3.2.1
19
+ version: 3.3.5
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '3.2'
30
27
  - - ">="
31
28
  - !ruby/object:Gem::Version
32
- version: 3.2.1
29
+ version: 3.3.5
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: connection_pool
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: '2.2'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 2.2.0
42
+ version: 2.2.2
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,23 +49,9 @@ dependencies:
49
49
  version: '2.2'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 2.2.0
53
- - !ruby/object:Gem::Dependency
54
- name: concurrent-ruby
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - "~>"
58
- - !ruby/object:Gem::Version
59
- version: '1.0'
60
- type: :runtime
61
- prerelease: false
62
- version_requirements: !ruby/object:Gem::Requirement
63
- requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: '1.0'
52
+ version: 2.2.2
67
53
  - !ruby/object:Gem::Dependency
68
- name: rack-protection
54
+ name: rack
69
55
  requirement: !ruby/object:Gem::Requirement
70
56
  requirements:
71
57
  - - ">="
@@ -79,143 +65,19 @@ dependencies:
79
65
  - !ruby/object:Gem::Version
80
66
  version: 1.5.0
81
67
  - !ruby/object:Gem::Dependency
82
- name: redis-namespace
83
- requirement: !ruby/object:Gem::Requirement
84
- requirements:
85
- - - "~>"
86
- - !ruby/object:Gem::Version
87
- version: '1.5'
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: 1.5.2
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: '1.5'
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: 1.5.2
101
- - !ruby/object:Gem::Dependency
102
- name: minitest
103
- requirement: !ruby/object:Gem::Requirement
104
- requirements:
105
- - - "~>"
106
- - !ruby/object:Gem::Version
107
- version: '5.10'
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: 5.10.1
111
- type: :development
112
- prerelease: false
113
- version_requirements: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '5.10'
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: 5.10.1
121
- - !ruby/object:Gem::Dependency
122
- name: rake
123
- requirement: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: '10.0'
128
- type: :development
129
- prerelease: false
130
- version_requirements: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "~>"
133
- - !ruby/object:Gem::Version
134
- version: '10.0'
135
- - !ruby/object:Gem::Dependency
136
- name: rails
68
+ name: rack-protection
137
69
  requirement: !ruby/object:Gem::Requirement
138
70
  requirements:
139
71
  - - ">="
140
72
  - !ruby/object:Gem::Version
141
- version: 3.2.0
142
- type: :development
73
+ version: 1.5.0
74
+ type: :runtime
143
75
  prerelease: false
144
76
  version_requirements: !ruby/object:Gem::Requirement
145
77
  requirements:
146
78
  - - ">="
147
79
  - !ruby/object:Gem::Version
148
- version: 3.2.0
149
- - !ruby/object:Gem::Dependency
150
- name: capybara
151
- requirement: !ruby/object:Gem::Requirement
152
- requirements:
153
- - - "~>"
154
- - !ruby/object:Gem::Version
155
- version: '2.11'
156
- type: :development
157
- prerelease: false
158
- version_requirements: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - "~>"
161
- - !ruby/object:Gem::Version
162
- version: '2.11'
163
- - !ruby/object:Gem::Dependency
164
- name: poltergeist
165
- requirement: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - "~>"
168
- - !ruby/object:Gem::Version
169
- version: '1.12'
170
- type: :development
171
- prerelease: false
172
- version_requirements: !ruby/object:Gem::Requirement
173
- requirements:
174
- - - "~>"
175
- - !ruby/object:Gem::Version
176
- version: '1.12'
177
- - !ruby/object:Gem::Dependency
178
- name: percy-capybara
179
- requirement: !ruby/object:Gem::Requirement
180
- requirements:
181
- - - "~>"
182
- - !ruby/object:Gem::Version
183
- version: '2.3'
184
- type: :development
185
- prerelease: false
186
- version_requirements: !ruby/object:Gem::Requirement
187
- requirements:
188
- - - "~>"
189
- - !ruby/object:Gem::Version
190
- version: '2.3'
191
- - !ruby/object:Gem::Dependency
192
- name: timecop
193
- requirement: !ruby/object:Gem::Requirement
194
- requirements:
195
- - - "~>"
196
- - !ruby/object:Gem::Version
197
- version: '0.8'
198
- type: :development
199
- prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
201
- requirements:
202
- - - "~>"
203
- - !ruby/object:Gem::Version
204
- version: '0.8'
205
- - !ruby/object:Gem::Dependency
206
- name: mocha
207
- requirement: !ruby/object:Gem::Requirement
208
- requirements:
209
- - - "~>"
210
- - !ruby/object:Gem::Version
211
- version: '1.1'
212
- type: :development
213
- prerelease: false
214
- version_requirements: !ruby/object:Gem::Requirement
215
- requirements:
216
- - - "~>"
217
- - !ruby/object:Gem::Version
218
- version: '1.1'
80
+ version: 1.5.0
219
81
  description: Simple, efficient background processing for Ruby.
220
82
  email:
221
83
  - mperham@gmail.com
@@ -225,12 +87,14 @@ executables:
225
87
  extensions: []
226
88
  extra_rdoc_files: []
227
89
  files:
90
+ - ".circleci/config.yml"
228
91
  - ".github/contributing.md"
229
92
  - ".github/issue_template.md"
230
93
  - ".gitignore"
231
94
  - ".travis.yml"
232
95
  - 3.0-Upgrade.md
233
96
  - 4.0-Upgrade.md
97
+ - 5.0-Upgrade.md
234
98
  - COMM-LICENSE
235
99
  - Changes.md
236
100
  - Ent-Changes.md
@@ -238,6 +102,7 @@ files:
238
102
  - LICENSE
239
103
  - Pro-2.0-Upgrade.md
240
104
  - Pro-3.0-Upgrade.md
105
+ - Pro-4.0-Upgrade.md
241
106
  - Pro-Changes.md
242
107
  - README.md
243
108
  - Rakefile
@@ -254,20 +119,22 @@ files:
254
119
  - lib/sidekiq/cli.rb
255
120
  - lib/sidekiq/client.rb
256
121
  - lib/sidekiq/core_ext.rb
122
+ - lib/sidekiq/ctl.rb
123
+ - lib/sidekiq/delay.rb
257
124
  - lib/sidekiq/exception_handler.rb
258
125
  - lib/sidekiq/extensions/action_mailer.rb
259
126
  - lib/sidekiq/extensions/active_record.rb
260
127
  - lib/sidekiq/extensions/class_methods.rb
261
128
  - lib/sidekiq/extensions/generic_proxy.rb
262
129
  - lib/sidekiq/fetch.rb
130
+ - lib/sidekiq/job_logger.rb
131
+ - lib/sidekiq/job_retry.rb
263
132
  - lib/sidekiq/launcher.rb
264
133
  - lib/sidekiq/logging.rb
265
134
  - lib/sidekiq/manager.rb
266
135
  - lib/sidekiq/middleware/chain.rb
267
136
  - lib/sidekiq/middleware/i18n.rb
268
137
  - lib/sidekiq/middleware/server/active_record.rb
269
- - lib/sidekiq/middleware/server/logging.rb
270
- - lib/sidekiq/middleware/server/retry_jobs.rb
271
138
  - lib/sidekiq/paginator.rb
272
139
  - lib/sidekiq/processor.rb
273
140
  - lib/sidekiq/rails.rb
@@ -289,8 +156,11 @@ files:
289
156
  - web/assets/images/status.png
290
157
  - web/assets/javascripts/application.js
291
158
  - web/assets/javascripts/dashboard.js
159
+ - web/assets/stylesheets/application-rtl.css
292
160
  - web/assets/stylesheets/application.css
161
+ - web/assets/stylesheets/bootstrap-rtl.min.css
293
162
  - web/assets/stylesheets/bootstrap.css
163
+ - web/locales/ar.yml
294
164
  - web/locales/cs.yml
295
165
  - web/locales/da.yml
296
166
  - web/locales/de.yml
@@ -299,6 +169,7 @@ files:
299
169
  - web/locales/es.yml
300
170
  - web/locales/fa.yml
301
171
  - web/locales/fr.yml
172
+ - web/locales/he.yml
302
173
  - web/locales/hi.yml
303
174
  - web/locales/it.yml
304
175
  - web/locales/ja.yml
@@ -312,6 +183,7 @@ files:
312
183
  - web/locales/sv.yml
313
184
  - web/locales/ta.yml
314
185
  - web/locales/uk.yml
186
+ - web/locales/ur.yml
315
187
  - web/locales/zh-cn.yml
316
188
  - web/locales/zh-tw.yml
317
189
  - web/views/_footer.erb
@@ -344,15 +216,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
344
216
  requirements:
345
217
  - - ">="
346
218
  - !ruby/object:Gem::Version
347
- version: '0'
219
+ version: 2.2.2
348
220
  required_rubygems_version: !ruby/object:Gem::Requirement
349
221
  requirements:
350
222
  - - ">="
351
223
  - !ruby/object:Gem::Version
352
224
  version: '0'
353
225
  requirements: []
354
- rubyforge_project:
355
- rubygems_version: 2.5.2
226
+ rubygems_version: 3.0.1
356
227
  signing_key:
357
228
  specification_version: 4
358
229
  summary: Simple, efficient background processing for Ruby