freddy 2.8.0 → 2.10.0

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: d728d028687af2cb365212bcbdc4bb278b2116ff665f64aa35ee75c057126455
4
- data.tar.gz: '019059f31b8da95352ec6b66e47ec73ff762b5b8c82b912d044b6e1820f717b2'
3
+ metadata.gz: dd0dbbf85e02a8b853785834898530095f86c076b79c6d8cb36a379ad133c6fa
4
+ data.tar.gz: a3fddc33ccebcf70a9482cd431d8706d533ab771daaee140afe6059dfe6de094
5
5
  SHA512:
6
- metadata.gz: 4eae3c233c958e0936d1da27dc99bc83274a2e673bc4107e2716617fd23c389a4c27632777ecefebb8a7a17a73246a3ba5c208436143d5a39b7030f446bb9e6b
7
- data.tar.gz: 17901b6c33f2a454032b23e8afb195e5f37cc1481f75f77b9f88c759f225dd4b3e1bb5a0547d6c62c0730df8d9757215ec5d2fd3c35a199a71595e07348c3277
6
+ metadata.gz: ae9cfaf81ca4b0428a31721df724e0ad9fea70f695c8e7cab2b53c1ee7070bfd835a1cb5ca53ea970f4b1eeed9d528d8bdcbf8e3d4b9d205bc2e1c2542320287
7
+ data.tar.gz: d8fdc01b0cff68c4cf6d9abcbe370964d585a042c88f1b761edd70ee8ffbf66976384510f15b401083e6bea63f3bed1811514b50c6a85d789e9fe398b23bee3a
@@ -0,0 +1 @@
1
+ * @salemove/tm-automaton
@@ -11,10 +11,10 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  strategy:
13
13
  matrix:
14
- ruby-version: ['2.7']
14
+ ruby-version: ['3.2']
15
15
  services:
16
16
  rabbitmq:
17
- image: rabbitmq
17
+ image: public.ecr.aws/docker/library/rabbitmq:4.0
18
18
  ports:
19
19
  - 5672:5672
20
20
  options: --health-cmd "rabbitmqctl node_health_check" --health-interval 10s --health-timeout 5s --health-retries 5
@@ -15,7 +15,7 @@ jobs:
15
15
 
16
16
 
17
17
  - name: Release Gem
18
- uses: discourse/publish-rubygems-action@ec5415e2cc3509a5cc8c4eef9499cf3fb05f8391
18
+ uses: discourse/publish-rubygems-action@4bd305c65315cb691bad1e8de97a87aaf29a0a85
19
19
  env:
20
20
  RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
21
21
  RELEASE_COMMAND: rake release
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7
1
+ 3.3.8
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,9 @@
1
+ # Contributing to freddy
2
+
3
+ We currently do not accept any contributions from external sources.
4
+
5
+ The code is still open source and if you wish to add any changes, feel free to fork it and add changes to your fork.
6
+
7
+ Issues for any security-related bugs found are still welcome, but we offer no guarantees on whether or when they will be acted upon.
8
+
9
+ For any exceptional cases, please contact us at open-source@glia.com.
data/Gemfile CHANGED
@@ -1,10 +1,12 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'bundler'
3
4
  gem 'hamster', '~> 3.0'
4
5
  gem 'opentelemetry-sdk', '~> 1.0'
5
6
  gem 'pry'
7
+ gem 'rake'
6
8
  gem 'rspec'
7
- gem 'rubocop', '~> 1.30'
8
- gem 'rubocop-rspec', '~> 2.4'
9
+ gem 'rubocop', '~> 1.61'
10
+ gem 'rubocop-rspec', '~> 3.3'
9
11
 
10
12
  gemspec
data/Gemfile.lock CHANGED
@@ -1,30 +1,35 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- freddy (2.8.0)
5
- bunny (~> 2.11)
4
+ freddy (2.10.0)
5
+ bunny (~> 2.24)
6
6
  concurrent-ruby (~> 1.0)
7
7
  oj (~> 3.6)
8
8
  opentelemetry-api (~> 1.0)
9
9
  opentelemetry-semantic_conventions (~> 1.0)
10
- zlib (~> 1.1)
10
+ zlib (~> 3.2)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- amq-protocol (2.3.2)
16
- ast (2.4.2)
17
- bunny (2.22.0)
18
- amq-protocol (~> 2.3, >= 2.3.1)
15
+ amq-protocol (2.3.4)
16
+ ast (2.4.3)
17
+ bigdecimal (3.1.9)
18
+ bunny (2.24.0)
19
+ amq-protocol (~> 2.3)
19
20
  sorted_set (~> 1, >= 1.0.2)
20
21
  coderay (1.1.3)
21
- concurrent-ruby (1.2.2)
22
+ concurrent-ruby (1.3.5)
22
23
  diff-lcs (1.4.4)
23
24
  hamster (3.0.0)
24
25
  concurrent-ruby (~> 1.0)
26
+ json (2.9.1)
27
+ language_server-protocol (3.17.0.3)
25
28
  method_source (1.0.0)
26
- oj (3.15.0)
27
- opentelemetry-api (1.1.0)
29
+ oj (3.16.10)
30
+ bigdecimal (>= 3.0)
31
+ ostruct (>= 0.2)
32
+ opentelemetry-api (1.5.0)
28
33
  opentelemetry-common (0.19.6)
29
34
  opentelemetry-api (~> 1.0)
30
35
  opentelemetry-registry (0.2.0)
@@ -34,19 +39,21 @@ GEM
34
39
  opentelemetry-common (~> 0.19.3)
35
40
  opentelemetry-registry (~> 0.2)
36
41
  opentelemetry-semantic_conventions
37
- opentelemetry-semantic_conventions (1.10.0)
42
+ opentelemetry-semantic_conventions (1.11.0)
38
43
  opentelemetry-api (~> 1.0)
39
- parallel (1.22.1)
40
- parser (3.1.2.0)
44
+ ostruct (0.6.1)
45
+ parallel (1.26.3)
46
+ parser (3.3.7.0)
41
47
  ast (~> 2.4.1)
48
+ racc
42
49
  pry (0.14.1)
43
50
  coderay (~> 1.1)
44
51
  method_source (~> 1.0)
52
+ racc (1.8.1)
45
53
  rainbow (3.1.1)
46
54
  rake (13.0.6)
47
55
  rbtree (0.4.6)
48
- regexp_parser (2.5.0)
49
- rexml (3.2.5)
56
+ regexp_parser (2.10.0)
50
57
  rspec (3.10.0)
51
58
  rspec-core (~> 3.10.0)
52
59
  rspec-expectations (~> 3.10.0)
@@ -60,27 +67,29 @@ GEM
60
67
  diff-lcs (>= 1.2.0, < 2.0)
61
68
  rspec-support (~> 3.10.0)
62
69
  rspec-support (3.10.2)
63
- rubocop (1.30.1)
70
+ rubocop (1.70.0)
71
+ json (~> 2.3)
72
+ language_server-protocol (>= 3.17.0)
64
73
  parallel (~> 1.10)
65
- parser (>= 3.1.0.0)
74
+ parser (>= 3.3.0.2)
66
75
  rainbow (>= 2.2.2, < 4.0)
67
- regexp_parser (>= 1.8, < 3.0)
68
- rexml (>= 3.2.5, < 4.0)
69
- rubocop-ast (>= 1.18.0, < 2.0)
76
+ regexp_parser (>= 2.9.3, < 3.0)
77
+ rubocop-ast (>= 1.36.2, < 2.0)
70
78
  ruby-progressbar (~> 1.7)
71
- unicode-display_width (>= 1.4.0, < 3.0)
72
- rubocop-ast (1.18.0)
73
- parser (>= 3.1.1.0)
74
- rubocop-rspec (2.4.0)
75
- rubocop (~> 1.0)
76
- rubocop-ast (>= 1.1.0)
77
- ruby-progressbar (1.11.0)
78
- set (1.0.3)
79
+ unicode-display_width (>= 2.4.0, < 4.0)
80
+ rubocop-ast (1.37.0)
81
+ parser (>= 3.3.1.0)
82
+ rubocop-rspec (3.4.0)
83
+ rubocop (~> 1.61)
84
+ ruby-progressbar (1.13.0)
85
+ set (1.1.2)
79
86
  sorted_set (1.0.3)
80
87
  rbtree
81
88
  set (~> 1.0)
82
- unicode-display_width (2.1.0)
83
- zlib (1.1.0)
89
+ unicode-display_width (3.1.4)
90
+ unicode-emoji (~> 4.0, >= 4.0.4)
91
+ unicode-emoji (4.0.4)
92
+ zlib (3.2.1)
84
93
 
85
94
  PLATFORMS
86
95
  ruby
@@ -94,8 +103,8 @@ DEPENDENCIES
94
103
  pry
95
104
  rake
96
105
  rspec
97
- rubocop (~> 1.30)
98
- rubocop-rspec (~> 2.4)
106
+ rubocop (~> 1.61)
107
+ rubocop-rspec (~> 3.3)
99
108
 
100
109
  BUNDLED WITH
101
- 2.3.9
110
+ 2.5.22
data/freddy.gemspec CHANGED
@@ -11,19 +11,16 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = 'API for inter-application messaging supporting acknowledgements and request-response'
12
12
  spec.license = 'MIT'
13
13
  spec.homepage = 'https://github.com/salemove/freddy'
14
- spec.required_ruby_version = '>= 2.7'
14
+ spec.required_ruby_version = '>= 3.2'
15
15
 
16
16
  spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_development_dependency 'bundler'
21
- spec.add_development_dependency 'rake'
22
-
23
- spec.add_dependency 'bunny', '~> 2.11'
20
+ spec.add_dependency 'bunny', '~> 2.24'
24
21
  spec.add_dependency 'concurrent-ruby', '~> 1.0'
25
22
  spec.add_dependency 'oj', '~> 3.6'
26
23
  spec.add_dependency 'opentelemetry-api', '~> 1.0'
27
24
  spec.add_dependency 'opentelemetry-semantic_conventions', '~> 1.0'
28
- spec.add_dependency 'zlib', '~> 1.1'
25
+ spec.add_dependency 'zlib', '~> 3.2'
29
26
  end
@@ -43,8 +43,8 @@ class Freddy
43
43
 
44
44
  def_delegators :@channel, :topic, :default_exchange, :consumers, :acknowledge, :reject
45
45
 
46
- def queue(*args)
47
- Queue.new(@channel.queue(*args))
46
+ def queue(*)
47
+ Queue.new(@channel.queue(*))
48
48
  end
49
49
 
50
50
  def on_no_route
@@ -59,8 +59,8 @@ class Freddy
59
59
  @queue = queue
60
60
  end
61
61
 
62
- def bind(*args)
63
- @queue.bind(*args)
62
+ def bind(*)
63
+ @queue.bind(*)
64
64
  self
65
65
  end
66
66
 
@@ -3,15 +3,16 @@
3
3
  class Freddy
4
4
  module Consumers
5
5
  class RespondToConsumer
6
- def self.consume(**attrs, &block)
7
- new(**attrs).consume(&block)
6
+ def self.consume(**attrs, &)
7
+ new(**attrs).consume(&)
8
8
  end
9
9
 
10
- def initialize(thread_pool:, destination:, channel:, handler_adapter_factory:)
10
+ def initialize(thread_pool:, destination:, channel:, handler_adapter_factory:, options:)
11
11
  @consume_thread_pool = thread_pool
12
12
  @destination = destination
13
13
  @channel = channel
14
14
  @handler_adapter_factory = handler_adapter_factory
15
+ @options = options
15
16
  end
16
17
 
17
18
  def consume
@@ -28,7 +29,7 @@ class Freddy
28
29
  private
29
30
 
30
31
  def consume_from_destination(&block)
31
- @channel.queue(@destination).subscribe(manual_ack: true) do |delivery|
32
+ @channel.queue(@destination, durable: durable?).subscribe(manual_ack: true) do |delivery|
32
33
  process_message(delivery, &block)
33
34
  end
34
35
  end
@@ -42,6 +43,10 @@ class Freddy
42
43
  @channel.acknowledge(delivery.tag, false)
43
44
  end
44
45
  end
46
+
47
+ def durable?
48
+ @options.fetch(:durable, true)
49
+ end
45
50
  end
46
51
  end
47
52
  end
@@ -7,9 +7,9 @@ class Freddy
7
7
  @logger = logger
8
8
  end
9
9
 
10
- def consume(_channel, queue, &block)
10
+ def consume(_channel, queue, &)
11
11
  @logger.debug "Consuming messages on #{queue.name}"
12
- queue.subscribe(&block)
12
+ queue.subscribe(&)
13
13
  end
14
14
  end
15
15
  end
@@ -3,8 +3,8 @@
3
3
  class Freddy
4
4
  module Consumers
5
5
  class TapIntoConsumer
6
- def self.consume(**attrs, &block)
7
- new(**attrs).consume(&block)
6
+ def self.consume(**attrs, &)
7
+ new(**attrs).consume(&)
8
8
  end
9
9
 
10
10
  def initialize(thread_pool:, patterns:, channel:, options:)
@@ -12,8 +12,6 @@ class Freddy
12
12
  @patterns = patterns
13
13
  @channel = channel
14
14
  @options = options
15
-
16
- raise 'Do not use durable queues without specifying a group' if durable? && !group
17
15
  end
18
16
 
19
17
  def consume(&block)
@@ -70,7 +68,7 @@ class Freddy
70
68
  end
71
69
 
72
70
  def durable?
73
- @options.fetch(:durable, false)
71
+ @options.fetch(:durable, true)
74
72
  end
75
73
 
76
74
  def on_exception
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Dir["#{File.dirname(__FILE__)}/consumers/*.rb"].sort.each(&method(:require))
3
+ Dir["#{File.dirname(__FILE__)}/consumers/*.rb"].each(&method(:require))
@@ -64,14 +64,14 @@ class Freddy
64
64
  if (request = @request_manager.delete(correlation_id))
65
65
  process_response(request, delivery)
66
66
  else
67
- message = "Got rpc response for correlation_id #{correlation_id} "\
67
+ message = "Got rpc response for correlation_id #{correlation_id} " \
68
68
  'but there is no requester'
69
69
  @logger.warn message
70
70
  end
71
71
  end
72
72
 
73
73
  def process_response(request, delivery)
74
- @logger.debug "Got response for request to #{request[:destination]} "\
74
+ @logger.debug "Got response for request to #{request[:destination]} " \
75
75
  "with correlation_id #{delivery.correlation_id}"
76
76
  request[:callback].call(delivery.payload, delivery)
77
77
  rescue InvalidRequestError => e
@@ -84,7 +84,7 @@ class Freddy
84
84
 
85
85
  def on_timeout(correlation_id, routing_key, timeout_in_seconds, span)
86
86
  proc do
87
- @logger.warn "Request timed out waiting response from #{routing_key}"\
87
+ @logger.warn "Request timed out waiting response from #{routing_key}" \
88
88
  ", correlation id #{correlation_id}, timeout #{timeout_in_seconds}s"
89
89
 
90
90
  @request_manager.delete(correlation_id)
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Dir["#{File.dirname(__FILE__)}/producers/*.rb"].sort.each(&method(:require))
3
+ Dir["#{File.dirname(__FILE__)}/producers/*.rb"].each(&method(:require))
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Freddy
4
- VERSION = '2.8.0'
4
+ VERSION = '2.10.0'
5
5
  end
data/lib/freddy.rb CHANGED
@@ -5,9 +5,9 @@ require 'concurrent'
5
5
  require 'securerandom'
6
6
  require 'opentelemetry'
7
7
  require 'opentelemetry/semantic_conventions'
8
- require_relative './freddy/version'
8
+ require_relative 'freddy/version'
9
9
 
10
- Dir["#{File.dirname(__FILE__)}/freddy/*.rb"].sort.each(&method(:require))
10
+ Dir["#{File.dirname(__FILE__)}/freddy/*.rb"].each(&method(:require))
11
11
 
12
12
  class Freddy
13
13
  FREDDY_TOPIC_EXCHANGE_NAME = 'freddy-topic'
@@ -77,7 +77,7 @@ class Freddy
77
77
  # handler.error(message: 'Can not do')
78
78
  # end
79
79
  # end
80
- def respond_to(destination, &callback)
80
+ def respond_to(destination, options = {}, &)
81
81
  @logger.info "Listening for requests on #{destination}"
82
82
 
83
83
  channel = @connection.create_channel(prefetch: @prefetch_buffer_size)
@@ -85,13 +85,12 @@ class Freddy
85
85
  handler_adapter_factory = MessageHandlerAdapters::Factory.new(producer)
86
86
 
87
87
  Consumers::RespondToConsumer.consume(
88
- **{
89
- thread_pool: Concurrent::FixedThreadPool.new(@prefetch_buffer_size),
90
- destination: destination,
91
- channel: channel,
92
- handler_adapter_factory: handler_adapter_factory
93
- },
94
- &callback
88
+ thread_pool: Concurrent::FixedThreadPool.new(@prefetch_buffer_size),
89
+ destination: destination,
90
+ channel: channel,
91
+ handler_adapter_factory: handler_adapter_factory,
92
+ options: options,
93
+ &
95
94
  )
96
95
  end
97
96
 
@@ -109,8 +108,9 @@ class Freddy
109
108
  # only one of the listeners in given group will receive a message. All
110
109
  # listeners will receive a message if the group is not specified.
111
110
  # @option options [Boolean] :durable
112
- # Should the consumer queue be durable? Default is `false`. This option can
113
- # be used only in combination with option `:group`.
111
+ # Should the consumer queue be durable? Default is `nil` - let server decide.
112
+ # This option can be used only in combination with option `:group`.
113
+ # Note that queues *must be durable* with "quorum" queue types.
114
114
  # @option options [Boolean] :on_exception
115
115
  # Defines consumer's behaviour when the callback fails to process a message
116
116
  # and raises an exception. Can be one of `:ack`, `:reject` or `:requeue`.
@@ -134,17 +134,15 @@ class Freddy
134
134
  # freddy.tap_into 'notifications.*' do |message|
135
135
  # puts "Notification showed #{message.inspect}"
136
136
  # end
137
- def tap_into(pattern_or_patterns, options = {}, &callback)
137
+ def tap_into(pattern_or_patterns, options = {}, &)
138
138
  @logger.debug "Tapping into messages that match #{pattern_or_patterns}"
139
139
 
140
140
  Consumers::TapIntoConsumer.consume(
141
- **{
142
- thread_pool: Concurrent::FixedThreadPool.new(@prefetch_buffer_size),
143
- patterns: Array(pattern_or_patterns),
144
- channel: @connection.create_channel(prefetch: @prefetch_buffer_size),
145
- options: options
146
- },
147
- &callback
141
+ thread_pool: Concurrent::FixedThreadPool.new(@prefetch_buffer_size),
142
+ patterns: Array(pattern_or_patterns),
143
+ channel: @connection.create_channel(prefetch: @prefetch_buffer_size),
144
+ options: options,
145
+ &
148
146
  )
149
147
  end
150
148
 
@@ -6,7 +6,8 @@ describe Freddy::Consumers::RespondToConsumer do
6
6
  thread_pool: thread_pool,
7
7
  destination: destination,
8
8
  channel: channel,
9
- handler_adapter_factory: msg_handler_adapter_factory
9
+ handler_adapter_factory: msg_handler_adapter_factory,
10
+ options: options
10
11
  )
11
12
  end
12
13
 
@@ -17,6 +18,7 @@ describe Freddy::Consumers::RespondToConsumer do
17
18
  let(:msg_handler_adapter) { Freddy::MessageHandlerAdapters::NoOpHandler.new }
18
19
  let(:prefetch_buffer_size) { 2 }
19
20
  let(:thread_pool) { Concurrent::FixedThreadPool.new(prefetch_buffer_size) }
21
+ let(:options) { { durable: false } }
20
22
 
21
23
  after do
22
24
  connection.close
@@ -2,9 +2,11 @@ require 'spec_helper'
2
2
  require 'hamster/experimental/mutable_set'
3
3
 
4
4
  describe 'Concurrency' do
5
+ # rubocop:disable RSpec/IndexedLet
5
6
  let(:freddy1) { Freddy.build(logger, **config) }
6
7
  let(:freddy2) { Freddy.build(logger, **config) }
7
8
  let(:freddy3) { Freddy.build(logger, **config) }
9
+ # rubocop:enable RSpec/IndexedLet
8
10
 
9
11
  after { [freddy1, freddy2, freddy3].each(&:close) }
10
12
 
@@ -39,6 +39,6 @@ describe 'Tapping into with exchange identifier' do
39
39
  channel.topic(topic).publish(message_payload, { routing_key: 'pattern.random' })
40
40
  default_sleep
41
41
 
42
- expect(received_timestamp).to eq(nil)
42
+ expect(received_timestamp).to be_nil
43
43
  end
44
44
  end
@@ -3,18 +3,14 @@ require 'hamster/experimental/mutable_set'
3
3
 
4
4
  describe 'Tapping into with group identifier' do
5
5
  let(:deliverer) { Freddy.build(logger, **config) }
6
+ # rubocop:disable RSpec/IndexedLet
6
7
  let(:responder1) { Freddy.build(logger, **config) }
7
8
  let(:responder2) { Freddy.build(logger, **config) }
8
-
9
+ # rubocop:enable RSpec/IndexedLet
9
10
  let(:destination) { random_destination }
10
11
 
11
12
  after { [deliverer, responder1, responder2].each(&:close) }
12
13
 
13
- it 'raises an exception if option :durable is provided without group' do
14
- expect { responder1.tap_into(destination, durable: true) }
15
- .to raise_error(RuntimeError)
16
- end
17
-
18
14
  it 'receives a message once' do
19
15
  msg_counter = Hamster::MutableSet[]
20
16
 
@@ -63,6 +63,7 @@ describe 'Tracing' do
63
63
  end
64
64
 
65
65
  context 'when receiving a nested traced request' do
66
+ # rubocop:disable RSpec/IndexedLet
66
67
  let(:freddy) { Freddy.build(logger, **config) }
67
68
  let(:freddy2) { Freddy.build(logger, **config) }
68
69
  let(:freddy3) { Freddy.build(logger, **config) }
@@ -70,6 +71,7 @@ describe 'Tracing' do
70
71
  let(:destination) { random_destination }
71
72
  let(:destination2) { random_destination }
72
73
  let(:destination3) { random_destination }
74
+ # rubocop:enable RSpec/IndexedLet
73
75
 
74
76
  before do
75
77
  freddy.respond_to(destination) do |_payload, msg_handler|
@@ -119,7 +121,7 @@ describe 'Tracing' do
119
121
  end
120
122
 
121
123
  context 'when receiving a broadcast' do
122
- let(:freddy) { Freddy.build(logger, config) }
124
+ let(:freddy) { Freddy.build(logger, **config) }
123
125
  let(:destination) { random_destination }
124
126
 
125
127
  before do
metadata CHANGED
@@ -1,57 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freddy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Glia TechMovers
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-09-07 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
12
  - !ruby/object:Gem::Dependency
42
13
  name: bunny
43
14
  requirement: !ruby/object:Gem::Requirement
44
15
  requirements:
45
16
  - - "~>"
46
17
  - !ruby/object:Gem::Version
47
- version: '2.11'
18
+ version: '2.24'
48
19
  type: :runtime
49
20
  prerelease: false
50
21
  version_requirements: !ruby/object:Gem::Requirement
51
22
  requirements:
52
23
  - - "~>"
53
24
  - !ruby/object:Gem::Version
54
- version: '2.11'
25
+ version: '2.24'
55
26
  - !ruby/object:Gem::Dependency
56
27
  name: concurrent-ruby
57
28
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +85,14 @@ dependencies:
114
85
  requirements:
115
86
  - - "~>"
116
87
  - !ruby/object:Gem::Version
117
- version: '1.1'
88
+ version: '3.2'
118
89
  type: :runtime
119
90
  prerelease: false
120
91
  version_requirements: !ruby/object:Gem::Requirement
121
92
  requirements:
122
93
  - - "~>"
123
94
  - !ruby/object:Gem::Version
124
- version: '1.1'
95
+ version: '3.2'
125
96
  description: Messaging API
126
97
  email:
127
98
  - techmovers@salemove.com
@@ -129,6 +100,7 @@ executables: []
129
100
  extensions: []
130
101
  extra_rdoc_files: []
131
102
  files:
103
+ - ".github/CODEOWNERS"
132
104
  - ".github/workflows/ci.yml"
133
105
  - ".github/workflows/publish.yml"
134
106
  - ".gitignore"
@@ -136,6 +108,7 @@ files:
136
108
  - ".rubocop.yml"
137
109
  - ".ruby-gemset"
138
110
  - ".ruby-version"
111
+ - CONTRIBUTING.md
139
112
  - Gemfile
140
113
  - Gemfile.lock
141
114
  - LICENCE.txt
@@ -184,7 +157,6 @@ homepage: https://github.com/salemove/freddy
184
157
  licenses:
185
158
  - MIT
186
159
  metadata: {}
187
- post_install_message:
188
160
  rdoc_options: []
189
161
  require_paths:
190
162
  - lib
@@ -192,15 +164,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
192
164
  requirements:
193
165
  - - ">="
194
166
  - !ruby/object:Gem::Version
195
- version: '2.7'
167
+ version: '3.2'
196
168
  required_rubygems_version: !ruby/object:Gem::Requirement
197
169
  requirements:
198
170
  - - ">="
199
171
  - !ruby/object:Gem::Version
200
172
  version: '0'
201
173
  requirements: []
202
- rubygems_version: 3.1.6
203
- signing_key:
174
+ rubygems_version: 3.6.7
204
175
  specification_version: 4
205
176
  summary: API for inter-application messaging supporting acknowledgements and request-response
206
177
  test_files: []