symphony 0.13.0 → 0.14.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69a99b3dc3c9e5a87d5a1bb25c28bf3255f19ad8aa2843ff543e068f4c768ac3
4
- data.tar.gz: 1c083a2547cbb2abc3ce39676679745541343bc02a275c7042c4327769335d81
3
+ metadata.gz: c8f391328cf5c098e87f56b3f036f676ab7b884a35f033c54c75fa83456afb8a
4
+ data.tar.gz: 1fbc3e3ab5a9e0aae6bdd0f0f3a9210689d3b0caba82e3668a5f9676e99b2b73
5
5
  SHA512:
6
- metadata.gz: a33510957bbd58b6be49c65a14726237c01c300f071b51799135c64962ec327f69bcce74912387b207d9964489f03b8ac614f7ccbc28eb97da992cbf6dd1bfba
7
- data.tar.gz: 1a5f13e6a1f59997d947ca5f6775e9d524f21f577865ae7ad9b60972bf113841865d0f444c3bd0494cc313fbb62759873ebd8d89a19f220c6c266a717ce27b74
6
+ metadata.gz: d5d4049d202b62371da4402404d3b53254de607e356e298d43f72c62de8305e4f0b0d54fb954f5dd5bd857665d1e5ff27f190ea89030e6faf5210efe05f9e54a
7
+ data.tar.gz: 4c6aa83b99edd4ccb32f087b8d39b0f6c177ddeacd158277726b49307e7fc07e2ca2f8bcca3d98db8c2ec8f25e60fb70277d5becf86470b313280a2308603d12
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  ---
4
4
 
5
+ == v0.14.1 [2023-03-09] Mahlon E. Smith <mahlon@martini.nu>
6
+
7
+ Housekeeping:
8
+
9
+ - Bump dependencies for Ruby 3.x.
10
+ - Remove (unused) revision VCS keyword expansion.
11
+
12
+
13
+ == v0.14.0 [2020-07-23] Michael Granger <ged@faeriemud.org>
14
+
15
+ Improvements:
16
+
17
+ - Allow `x-queue-type` to be specified for a `Task`. Thanks to
18
+ Alyssa Verkade <averkade@costar.com> for the patch.
19
+
20
+
5
21
  == v0.13.0 [2020-03-09] Michael Granger <ged@faeriemud.org>
6
22
 
7
23
  Improvements:
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
1
  # symphony
2
2
 
3
3
  home
4
- : https://hg.sr.ht/~ged/symphony
4
+ : https://hg.sr.ht/~ged/Symphony
5
+
6
+ code
7
+ : https://hg.sr.ht/~ged/Symphony/browse
5
8
 
6
9
  docs
7
10
  : https://deveiate.org/code/symphony
data/USAGE.rdoc CHANGED
@@ -79,14 +79,14 @@ calling #run on the class itself.
79
79
  == The Simplest Task
80
80
 
81
81
  #!/usr/bin/env ruby
82
-
82
+
83
83
  require 'symphony'
84
-
84
+
85
85
  class Test < Symphony::Task
86
-
86
+
87
87
  # Process all events
88
88
  subscribe_to '#'
89
-
89
+
90
90
  def work( payload, metadata )
91
91
  puts "I received an event: %p with a payload of %p" % [
92
92
  metadata[ :delivery_info ][ :routing_key ],
@@ -95,7 +95,7 @@ calling #run on the class itself.
95
95
  return true
96
96
  end
97
97
  end
98
-
98
+
99
99
  Symphony.load_config( 'etc/config.yml' )
100
100
  Test.run
101
101
 
@@ -239,13 +239,13 @@ By default, Symphony will try and create a queue based on the Class
239
239
  name of the task. You can override this per-task.
240
240
 
241
241
  class Test < Symphony::Task
242
-
242
+
243
243
  # Process all events
244
244
  subscribe_to '#'
245
-
245
+
246
246
  # I don't want to connect to a 'test' queue, lets make it interesting:
247
247
  queue_name 'shazzzaaaam'
248
-
248
+
249
249
  def work( payload, metadata )
250
250
  ...
251
251
 
@@ -261,14 +261,28 @@ can tell a task to create a persistent queue instead of an auto-delete queue:
261
261
 
262
262
  == Queue Re-binding
263
263
 
264
- If you want Symphony to re-bind a worker's queue when it starts up, you call tell it to with +always_rebind+:
264
+ If you want Symphony to re-bind a worker's queue when it starts up, you call
265
+ tell it to with +always_rebind+:
265
266
 
266
267
  always_rebind true
267
268
 
268
- Note that re-binding doesn't *unbind* from the existing pattern/s, so you'll
269
+ Note that re-binding doesn't *unbind* from the existing pattern/s, so you'll
269
270
  need to account for this in the Task's +work+ method.
270
271
 
271
272
 
273
+ == Queue Type
274
+
275
+ If you're running a version of RabbitMQ that supports the `x-queue-type`
276
+ argument (e.g., for quorum queues), you can specify a value for it using the
277
+ `queue_type` declaration:
278
+
279
+ queue_type 'quorum'
280
+
281
+ Note that several other queue settings might not work with some kinds of
282
+ queues; the validity of the combination of the task's settings are left to
283
+ the implementor.
284
+
285
+
272
286
  = Plugins
273
287
 
274
288
  Plugins change or enhance the behavior of a Symphony::Task.
@@ -287,7 +301,7 @@ the process name to display a total count and jobs per second rate.
287
301
  prepend Symphony::Metrics
288
302
  # ...
289
303
  end
290
-
304
+
291
305
 
292
306
  == Routing
293
307
 
@@ -300,13 +314,13 @@ receive multiple message topics much easier to maintain and test.
300
314
 
301
315
  class Test < Symphony::Task
302
316
  include Symphony::Routing
303
-
317
+
304
318
  on 'users.create', 'workstation.create' do |payload, metadata|
305
319
  puts "A user or workstation wants to be created!"
306
320
  # ...
307
321
  return true
308
322
  end
309
-
323
+
310
324
  on 'users.delete' do |payload, metadata|
311
325
  puts "A user wants to be deleted!"
312
326
  return true
@@ -33,13 +33,8 @@ class Symphony::Daemon
33
33
  #
34
34
 
35
35
  ### Get the daemon's version as a String.
36
- def self::version_string( include_buildnum=false )
37
- vstring = "%s %s" % [ self.name, Symphony::VERSION ]
38
- if include_buildnum
39
- rev = Symphony::REVISION[/: ([[:xdigit:]]+)/, 1] || '0'
40
- vstring << " (build %s)" % [ rev ]
41
- end
42
- return vstring
36
+ def self::version_string
37
+ return "%s %s" % [ self.name, Symphony::VERSION ]
43
38
  end
44
39
 
45
40
 
@@ -150,13 +150,14 @@ class Symphony::Queue
150
150
 
151
151
  ### Create a new Queue for the specified +task_class+.
152
152
  def initialize( task_class )
153
- @name = task_class.queue_name
154
- @acknowledge = task_class.acknowledge
155
- @consumer_tag = task_class.consumer_tag
156
- @routing_keys = task_class.routing_keys
157
- @prefetch = task_class.prefetch
158
- @persistent = task_class.persistent
159
- @always_rebind = task_class.always_rebind
153
+ @name = task_class.queue_name
154
+ @acknowledge = task_class.acknowledge
155
+ @consumer_tag = task_class.consumer_tag
156
+ @routing_keys = task_class.routing_keys
157
+ @prefetch = task_class.prefetch
158
+ @persistent = task_class.persistent
159
+ @always_rebind = task_class.always_rebind
160
+ @amqp_queue_type = task_class.queue_type
160
161
 
161
162
  @amqp_queue = nil
162
163
  @shutting_down = false
@@ -195,6 +196,10 @@ class Symphony::Queue
195
196
  # Whether or not to re-bind the queue to the exchange during setup
196
197
  attr_predicate :always_rebind
197
198
 
199
+ ##
200
+ # The -x-queue-type of the queue, if any
201
+ attr_reader :amqp_queue_type
202
+
198
203
  ##
199
204
  # The underlying Bunny::Queue this object manages
200
205
  attr_reader :amqp_queue
@@ -256,19 +261,20 @@ class Symphony::Queue
256
261
  exchange = self.class.amqp_exchange
257
262
  channel = self.class.amqp_channel
258
263
  created_queue = false
259
- queue = nil
260
264
 
261
- begin
262
- queue = channel.queue( self.name, passive: true )
265
+ queue = begin
266
+ existing_queue = channel.queue( self.name, passive: true )
263
267
  channel.prefetch( prefetch_count )
264
268
  self.log.info "Using pre-existing queue: %s" % [ self.name ]
269
+ existing_queue
265
270
  rescue Bunny::NotFound => err
266
271
  self.log.info "%s; creating a new queue instead." % [ err.message ]
267
272
  created_queue = true
268
273
  channel = self.class.reset_amqp_channel
269
274
  channel.prefetch( prefetch_count )
270
275
 
271
- queue = channel.queue( self.name, auto_delete: !self.persistent )
276
+ arguments = { 'x-queue-type' => self.amqp_queue_type }.compact
277
+ channel.queue( self.name, auto_delete: !self.persistent, arguments: arguments )
272
278
  end
273
279
 
274
280
  if self.always_rebind? || created_queue
data/lib/symphony/task.rb CHANGED
@@ -53,6 +53,7 @@ class Symphony::Task
53
53
  @prefetch = 10
54
54
  @persistent = false
55
55
  @always_rebind = false
56
+ @queue_type = nil
56
57
 
57
58
 
58
59
  ### Create a new Task object and listen for work. Exits with the code returned
@@ -88,6 +89,7 @@ class Symphony::Task
88
89
  super
89
90
 
90
91
  subclass.instance_variable_set( :@queue, nil )
92
+ subclass.instance_variable_set( :@queue_type, nil )
91
93
  subclass.instance_variable_set( :@always_rebind, false )
92
94
  subclass.instance_variable_set( :@routing_keys, Set.new )
93
95
  subclass.instance_variable_set( :@acknowledge, true )
@@ -143,6 +145,16 @@ class Symphony::Task
143
145
  end
144
146
 
145
147
 
148
+ ### Specify an x-queue-type for the underlying queue
149
+ def self::queue_type( type=nil )
150
+ if type
151
+ @queue_type = type
152
+ end
153
+
154
+ return @queue_type
155
+ end
156
+
157
+
146
158
  ### Set up one or more topic key patterns to use when binding the Task's queue
147
159
  ### to the exchange.
148
160
  def self::subscribe_to( *routing_keys )
data/lib/symphony.rb CHANGED
@@ -12,11 +12,7 @@ module Symphony
12
12
  Configurability
13
13
 
14
14
  # Library version constant
15
- VERSION = '0.13.0'
16
-
17
- # Version-control revision constant
18
- REVISION = %q$Revision$
19
-
15
+ VERSION = '0.14.1'
20
16
 
21
17
  # The name of the environment variable to check for config file overrides
22
18
  CONFIG_ENV = 'SYMPHONY_CONFIG'
@@ -45,12 +45,6 @@ RSpec.describe Symphony::Daemon do
45
45
  ).to match( /#{described_class} #{Symphony::VERSION}/i )
46
46
  end
47
47
 
48
- it "can include its build number in its version string" do
49
- expect(
50
- described_class.version_string( true )
51
- ).to match( /\(build \p{Xdigit}+\)/i )
52
- end
53
-
54
48
  it "exits gracefully on one SIGINT" do
55
49
  Symphony.tasks.clear
56
50
  thr = Thread.new { daemon.run_tasks }
@@ -128,7 +128,33 @@ RSpec.describe Symphony::Queue do
128
128
  expect( new_channel ).to receive( :prefetch ).
129
129
  with( Symphony::Queue::DEFAULT_PREFETCH )
130
130
  expect( new_channel ).to receive( :queue ).
131
- with( queue.name, auto_delete: true ).
131
+ with( queue.name, auto_delete: true, arguments: {} ).
132
+ and_return( amqp_queue )
133
+ expect( amqp_queue ).to receive( :bind ).
134
+ with( described_class.amqp_exchange, routing_key: 'floppy.rabbit.#' )
135
+
136
+ expect( queue.create_amqp_queue ).to be( amqp_queue )
137
+ end
138
+
139
+
140
+ it "can declare the queue's x-queue-type" do
141
+ testing_task_class.subscribe_to( 'floppy.rabbit.#' )
142
+ testing_task_class.queue_type( 'classic' )
143
+ expect( described_class.amqp_channel ).to receive( :queue ).
144
+ with( queue.name, passive: true ).
145
+ and_raise( Bunny::NotFound.new("no such queue", described_class.amqp_channel, true) )
146
+ expect( described_class.amqp_channel ).to receive( :open? ).
147
+ and_return( false )
148
+
149
+ # Channel is reset after queue creation fails
150
+ new_channel = double( "New AMQP channel" )
151
+ amqp_queue = double( "AMQP queue" )
152
+ allow( described_class.amqp_session ).to receive( :create_channel ).
153
+ and_return( new_channel )
154
+ expect( new_channel ).to receive( :prefetch ).
155
+ with( Symphony::Queue::DEFAULT_PREFETCH )
156
+ expect( new_channel ).to receive( :queue ).
157
+ with( queue.name, auto_delete: true, arguments: { 'x-queue-type' => 'classic' } ).
132
158
  and_return( amqp_queue )
133
159
  expect( amqp_queue ).to receive( :bind ).
134
160
  with( described_class.amqp_exchange, routing_key: 'floppy.rabbit.#' )
@@ -99,6 +99,23 @@ RSpec.describe Symphony::Task do
99
99
  end
100
100
 
101
101
 
102
+ it "can set the x-queue-type for the queue" do
103
+ task = Class.new( described_class ) do
104
+ queue_name 'wascally.wabbit'
105
+ queue_type 'classic'
106
+ end
107
+ expect( task.queue_type ).to eq( 'classic' )
108
+ end
109
+
110
+
111
+ it "has a queue type of nil if unspecified" do
112
+ task = Class.new( described_class ) do
113
+ queue_name 'wascally.wabbit'
114
+ end
115
+ expect( task.queue_type ).to eq( nil )
116
+ end
117
+
118
+
102
119
  it "can set the number of messages to prefetch" do
103
120
  task_class.prefetch( 10 )
104
121
  expect( task_class.prefetch ).to eq( 10 )
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symphony
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -11,122 +11,116 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
15
- REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xOTEwMDkwMDM2NTdaFw0yMDEwMDgwMDM2
16
- NTdaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
17
- hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
18
- L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
19
- M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
20
- 5PU2AEbf04GGSrmqADGWXeaslaoRdb1fu/0M5qfPTRn5V39sWD9umuDAF9qqil/x
21
- Sl6phTvgBrG8GExHbNZpLARd3xrBYLEFsX7RvBn2UPfgsrtvpdXjsHGfpT3IPN+B
22
- vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
23
- dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
24
- ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
25
- N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
26
- VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DAcBgNVHREE
27
- FTATgRFnZWRARmFlcmllTVVELm9yZzAcBgNVHRIEFTATgRFnZWRARmFlcmllTVVE
28
- Lm9yZzANBgkqhkiG9w0BAQsFAAOCAYEAFqsr6o0SvQRgjQVmhbQvExRnCMCoW1yb
29
- FJiN7A5RA2Iy2E61OG1Ul5nGmaDmx/PNB/6JIbIV3B9Uq8aTZx4uOjK7r8vMl1/t
30
- ZfY7r6HejJfXlcO2m6JDMbpdyEVv916LncBkzZRz6vnnNCx+31f15FKddxujpAFd
31
- qpn3JRQY+oj7ZkoccL/IUiDpxQWeS3oOoz9qr2kVTp8R50InZimt79FqCl/1m66W
32
- kdOuf+wM3DDx7Rt4IVNHrhGlyfMr7xjKW1Q3gll+pMN1DT6Ajx/t3JDSEg7BnnEW
33
- r7AciSO6J4ApUdqyG+coLFlGdtgFTgRHv7ihbQtDI7Z/LV7A4Spn1j2PK3j0Omri
34
- kSl1hPVigRytfgdVGiLXzvkkrkgj9EknCaj5UHbac7XvVBrljXj9hsnnqTANaKsg
35
- jBZSA+N+xUTgUWpXjjwsLZjzJkhWATJWq+krNXcqpwXo6HsjmdUxoFMt63RBb+sI
36
- XrxOxp8o0uOkU7FdLSGsyqJ2LzsR4obN
14
+ MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdtYWhs
15
+ b24vREM9bWFydGluaS9EQz1udTAeFw0yMTAxMTcwMDQzMDZaFw0zMTAxMTUwMDQz
16
+ MDZaMCIxIDAeBgNVBAMMF21haGxvbi9EQz1tYXJ0aW5pL0RDPW51MIIBojANBgkq
17
+ hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAsRZyNGaL3I8T2AkQsHKyixW10CY6T715
18
+ uOztbmZImekhmgE9Uj5xZCnUP4xG5ToJffgkxcbepyJwIHCjEQg7viL9EsA+rMNb
19
+ UX8dsa9jpvVD6nHAdoW8G0ee7SRBXhCfyNma8FtkDJfw2bwdKhxUKiHsULCSQ0Pd
20
+ p+4d5NnldgfB8cf4Hz9Ai/8FHacWnZVEiHa4Ngb5Fe42OUs+4XDQdpcgA7wCY633
21
+ q9rRVGK7MW9BzMv+hhQfElQMn1eDMgQVpO543viDT8JatwhhcYmKdzwTIIPAIybf
22
+ 8MfJaimsh20OAqs3FAXNKjDVFbcXFfKUXXgVgMjUoEK5+Lp+pKPZXU4bIi5oYZqB
23
+ OttGPMD5rOWlAooWNQ7xbdHByUVqJmALSWHqPHdvVmAVsW8tNoB1qGbM+C6o80Ie
24
+ 9H0389ja3TW4JK/0w/gFUmrVvYKRll44HaxS9nXNpiYBipbJmlR/R9qoe54ImQje
25
+ Z4vsWrWiDrK/oVYlUXOy7SE/jUAQF9UzAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
26
+ VR0PBAQDAgSwMB0GA1UdDgQWBBSx8TRqCmTPOARICKiZ3c66sIG3pTAcBgNVHREE
27
+ FTATgRFtYWhsb25AbWFydGluaS5udTAcBgNVHRIEFTATgRFtYWhsb25AbWFydGlu
28
+ aS5udTANBgkqhkiG9w0BAQsFAAOCAYEAHbiAZTe46/kp1Tkm4s6D30VBaYaAdaYG
29
+ bZIaAaHtJO9MbUNS0FA01fxQpptjpOQT3cNNf8CX8UHPTaSuPFMfgVWj1xiX7Byb
30
+ hqhUcUTENOuUxxWGDCa4orCFctc3yihojTKGtbhODHVSHf9DRDyalRcvmyWzxMFT
31
+ XtBS05OUXc9O1bKqzNaRc9nMGw6Y+V79hIex4mZlMBkhTeVKxeeweCXfELXOQRmB
32
+ FgPgUyQn0AaSpplx0YoWdy/99fEkXSMvgeEoiR1ApR6aUuTlvIr1yUgzVBpWU4mE
33
+ XC+Ig+3jhqufGyE/Do+1M7n5QLpgGfpy3QmoOiKeYt3XzR5Z7XoxCAaKHNRxVEga
34
+ ojmVnDNlLQkkZZkbFNGPHjCIBs7h+6eoIYvy/eQ82c4vd6w9rR4v9bKUL8NNkcSz
35
+ 49pOzX5KHZLTS9DKeaP/xcGPz6C8MiwQdYrZarr2SHRASX1zFa79rkItO8kE6RDr
36
+ b6WDF79UvZ55ajtE00TiwqjQL/ZPEtbd
37
37
  -----END CERTIFICATE-----
38
- date: 2020-03-10 00:00:00.000000000 Z
38
+ date: 2023-03-09 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: configurability
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '3.1'
47
- - - "<="
44
+ - - "~>"
48
45
  - !ruby/object:Gem::Version
49
- version: '4.99'
46
+ version: '4.2'
50
47
  type: :runtime
51
48
  prerelease: false
52
49
  version_requirements: !ruby/object:Gem::Requirement
53
50
  requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: '3.1'
57
- - - "<="
51
+ - - "~>"
58
52
  - !ruby/object:Gem::Version
59
- version: '4.99'
53
+ version: '4.2'
60
54
  - !ruby/object:Gem::Dependency
61
55
  name: loggability
62
56
  requirement: !ruby/object:Gem::Requirement
63
57
  requirements:
64
58
  - - "~>"
65
59
  - !ruby/object:Gem::Version
66
- version: '0.11'
60
+ version: '0.18'
67
61
  type: :runtime
68
62
  prerelease: false
69
63
  version_requirements: !ruby/object:Gem::Requirement
70
64
  requirements:
71
65
  - - "~>"
72
66
  - !ruby/object:Gem::Version
73
- version: '0.11'
67
+ version: '0.18'
74
68
  - !ruby/object:Gem::Dependency
75
69
  name: pluggability
76
70
  requirement: !ruby/object:Gem::Requirement
77
71
  requirements:
78
72
  - - "~>"
79
73
  - !ruby/object:Gem::Version
80
- version: '0.4'
74
+ version: '0.8'
81
75
  type: :runtime
82
76
  prerelease: false
83
77
  version_requirements: !ruby/object:Gem::Requirement
84
78
  requirements:
85
79
  - - "~>"
86
80
  - !ruby/object:Gem::Version
87
- version: '0.4'
81
+ version: '0.8'
88
82
  - !ruby/object:Gem::Dependency
89
83
  name: bunny
90
84
  requirement: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - "~>"
93
87
  - !ruby/object:Gem::Version
94
- version: '2.0'
88
+ version: '2.20'
95
89
  type: :runtime
96
90
  prerelease: false
97
91
  version_requirements: !ruby/object:Gem::Requirement
98
92
  requirements:
99
93
  - - "~>"
100
94
  - !ruby/object:Gem::Version
101
- version: '2.0'
95
+ version: '2.20'
102
96
  - !ruby/object:Gem::Dependency
103
97
  name: sysexits
104
98
  requirement: !ruby/object:Gem::Requirement
105
99
  requirements:
106
100
  - - "~>"
107
101
  - !ruby/object:Gem::Version
108
- version: '1.1'
102
+ version: '1.2'
109
103
  type: :runtime
110
104
  prerelease: false
111
105
  version_requirements: !ruby/object:Gem::Requirement
112
106
  requirements:
113
107
  - - "~>"
114
108
  - !ruby/object:Gem::Version
115
- version: '1.1'
109
+ version: '1.2'
116
110
  - !ruby/object:Gem::Dependency
117
111
  name: msgpack
118
112
  requirement: !ruby/object:Gem::Requirement
119
113
  requirements:
120
114
  - - "~>"
121
115
  - !ruby/object:Gem::Version
122
- version: '1.0'
116
+ version: '1.6'
123
117
  type: :runtime
124
118
  prerelease: false
125
119
  version_requirements: !ruby/object:Gem::Requirement
126
120
  requirements:
127
121
  - - "~>"
128
122
  - !ruby/object:Gem::Version
129
- version: '1.0'
123
+ version: '1.6'
130
124
  - !ruby/object:Gem::Dependency
131
125
  name: metriks
132
126
  requirement: !ruby/object:Gem::Requirement
@@ -161,42 +155,56 @@ dependencies:
161
155
  requirements:
162
156
  - - "~>"
163
157
  - !ruby/object:Gem::Version
164
- version: '0.12'
158
+ version: '0.22'
165
159
  type: :development
166
160
  prerelease: false
167
161
  version_requirements: !ruby/object:Gem::Requirement
168
162
  requirements:
169
163
  - - "~>"
170
164
  - !ruby/object:Gem::Version
171
- version: '0.12'
165
+ version: '0.22'
166
+ - !ruby/object:Gem::Dependency
167
+ name: rdoc-generator-sixfish
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '0.3'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '0.3'
172
180
  - !ruby/object:Gem::Dependency
173
181
  name: simplecov
174
182
  requirement: !ruby/object:Gem::Requirement
175
183
  requirements:
176
184
  - - "~>"
177
185
  - !ruby/object:Gem::Version
178
- version: '0.8'
186
+ version: '0.22'
179
187
  type: :development
180
188
  prerelease: false
181
189
  version_requirements: !ruby/object:Gem::Requirement
182
190
  requirements:
183
191
  - - "~>"
184
192
  - !ruby/object:Gem::Version
185
- version: '0.8'
193
+ version: '0.22'
186
194
  - !ruby/object:Gem::Dependency
187
195
  name: timecop
188
196
  requirement: !ruby/object:Gem::Requirement
189
197
  requirements:
190
198
  - - "~>"
191
199
  - !ruby/object:Gem::Version
192
- version: '0.8'
200
+ version: '0.9'
193
201
  type: :development
194
202
  prerelease: false
195
203
  version_requirements: !ruby/object:Gem::Requirement
196
204
  requirements:
197
205
  - - "~>"
198
206
  - !ruby/object:Gem::Version
199
- version: '0.8'
207
+ version: '0.9'
200
208
  description: Symphony is a subscription-based asynchronous job system. It allows you
201
209
  to define jobs that watch for lightweight events from a distributed-messaging AMQP
202
210
  broker, and do work based on their payload.
@@ -246,13 +254,15 @@ files:
246
254
  - spec/symphony/task_group_spec.rb
247
255
  - spec/symphony/task_spec.rb
248
256
  - spec/symphony_spec.rb
249
- homepage: https://hg.sr.ht/~ged/symphony
257
+ homepage: https://hg.sr.ht/~ged/Symphony
250
258
  licenses:
251
259
  - BSD-3-Clause
252
260
  metadata:
253
- homepage_uri: https://hg.sr.ht/~ged/symphony
261
+ homepage_uri: https://hg.sr.ht/~ged/Symphony
254
262
  documentation_uri: https://deveiate.org/code/symphony
255
263
  changelog_uri: https://deveiate.org/code/symphony/History_md.html
264
+ source_uri: https://hg.sr.ht/~ged/Symphony/browse
265
+ bug_tracker_uri: https://todo.sr.ht/~ged/Symphony/browse
256
266
  post_install_message:
257
267
  rdoc_options: []
258
268
  require_paths:
@@ -268,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
268
278
  - !ruby/object:Gem::Version
269
279
  version: '0'
270
280
  requirements: []
271
- rubygems_version: 3.1.2
281
+ rubygems_version: 3.4.6
272
282
  signing_key:
273
283
  specification_version: 4
274
284
  summary: Symphony is a subscription-based asynchronous job system.
metadata.gz.sig CHANGED
Binary file