freddy 2.8.0 → 2.9.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 +4 -4
- data/.github/CODEOWNERS +1 -0
- data/.github/workflows/ci.yml +2 -2
- data/.github/workflows/publish.yml +1 -1
- data/.ruby-version +1 -1
- data/CONTRIBUTING.md +9 -0
- data/Gemfile +4 -2
- data/Gemfile.lock +38 -29
- data/freddy.gemspec +2 -5
- data/lib/freddy/adapters/bunny_adapter.rb +4 -4
- data/lib/freddy/consumers/respond_to_consumer.rb +2 -2
- data/lib/freddy/consumers/response_consumer.rb +2 -2
- data/lib/freddy/consumers/tap_into_consumer.rb +2 -2
- data/lib/freddy/consumers.rb +1 -1
- data/lib/freddy/producers/send_and_wait_response_producer.rb +3 -3
- data/lib/freddy/producers.rb +1 -1
- data/lib/freddy/version.rb +1 -1
- data/lib/freddy.rb +14 -18
- data/spec/integration/concurrency_spec.rb +2 -0
- data/spec/integration/tap_into_with_exchange_spec.rb +1 -1
- data/spec/integration/tap_into_with_group_spec.rb +2 -1
- data/spec/integration/tracing_spec.rb +3 -1
- metadata +8 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d37275d237bbe49c30c6ad3c93e40b30d9b3dc631d8f8156ec1812b051010c52
|
4
|
+
data.tar.gz: 242f0523cb85e38ed9d295f2c99dc1668b8727fb5246fde4464018160796dfc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9eabd4eb896cadfc8d43a64e4092b59ee7248b6d58e2674819951e478de8257f4e5ab4ccbffad7a0e1ca1ef3009f56a83a303fbc269711ad8fd2678ff5935606
|
7
|
+
data.tar.gz: 3572bf85e93a9a741b6366c4fcd6c9634c4487b5a3254b8a8960947393f9dc92676d084b0a98f18feb3ed5c2fe36a39415d58fb2027be146acfdf68f2c637a0e
|
data/.github/CODEOWNERS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* @salemove/tm-automaton
|
data/.github/workflows/ci.yml
CHANGED
@@ -11,10 +11,10 @@ jobs:
|
|
11
11
|
runs-on: ubuntu-latest
|
12
12
|
strategy:
|
13
13
|
matrix:
|
14
|
-
ruby-version: ['2
|
14
|
+
ruby-version: ['3.2']
|
15
15
|
services:
|
16
16
|
rabbitmq:
|
17
|
-
image: rabbitmq
|
17
|
+
image: public.ecr.aws/docker/library/rabbitmq:3.13.7
|
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@
|
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
|
-
|
1
|
+
3.3.6
|
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.
|
8
|
-
gem 'rubocop-rspec', '~>
|
9
|
+
gem 'rubocop', '~> 1.61'
|
10
|
+
gem 'rubocop-rspec', '~> 3.3'
|
9
11
|
|
10
12
|
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,29 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
freddy (2.
|
4
|
+
freddy (2.9.0)
|
5
5
|
bunny (~> 2.11)
|
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 (~>
|
10
|
+
zlib (~> 3.2)
|
11
11
|
|
12
12
|
GEM
|
13
13
|
remote: https://rubygems.org/
|
14
14
|
specs:
|
15
|
-
amq-protocol (2.3.
|
16
|
-
ast (2.4.
|
17
|
-
|
18
|
-
|
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.
|
22
|
+
concurrent-ruby (1.3.1)
|
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.
|
29
|
+
oj (3.16.10)
|
30
|
+
bigdecimal (>= 3.0)
|
31
|
+
ostruct (>= 0.2)
|
27
32
|
opentelemetry-api (1.1.0)
|
28
33
|
opentelemetry-common (0.19.6)
|
29
34
|
opentelemetry-api (~> 1.0)
|
@@ -36,17 +41,19 @@ GEM
|
|
36
41
|
opentelemetry-semantic_conventions
|
37
42
|
opentelemetry-semantic_conventions (1.10.0)
|
38
43
|
opentelemetry-api (~> 1.0)
|
39
|
-
|
40
|
-
|
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.
|
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.
|
70
|
+
rubocop (1.70.0)
|
71
|
+
json (~> 2.3)
|
72
|
+
language_server-protocol (>= 3.17.0)
|
64
73
|
parallel (~> 1.10)
|
65
|
-
parser (>= 3.
|
74
|
+
parser (>= 3.3.0.2)
|
66
75
|
rainbow (>= 2.2.2, < 4.0)
|
67
|
-
regexp_parser (>=
|
68
|
-
|
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 (>=
|
72
|
-
rubocop-ast (1.
|
73
|
-
parser (>= 3.
|
74
|
-
rubocop-rspec (
|
75
|
-
rubocop (~> 1.
|
76
|
-
|
77
|
-
|
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 (
|
83
|
-
|
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.
|
98
|
-
rubocop-rspec (~>
|
106
|
+
rubocop (~> 1.61)
|
107
|
+
rubocop-rspec (~> 3.3)
|
99
108
|
|
100
109
|
BUNDLED WITH
|
101
110
|
2.3.9
|
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
|
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
20
|
spec.add_dependency 'bunny', '~> 2.11'
|
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', '~>
|
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(*
|
47
|
-
Queue.new(@channel.queue(*
|
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(*
|
63
|
-
@queue.bind(*
|
62
|
+
def bind(*)
|
63
|
+
@queue.bind(*)
|
64
64
|
self
|
65
65
|
end
|
66
66
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
class Freddy
|
4
4
|
module Consumers
|
5
5
|
class RespondToConsumer
|
6
|
-
def self.consume(**attrs, &
|
7
|
-
new(**attrs).consume(&
|
6
|
+
def self.consume(**attrs, &)
|
7
|
+
new(**attrs).consume(&)
|
8
8
|
end
|
9
9
|
|
10
10
|
def initialize(thread_pool:, destination:, channel:, handler_adapter_factory:)
|
data/lib/freddy/consumers.rb
CHANGED
@@ -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)
|
data/lib/freddy/producers.rb
CHANGED
data/lib/freddy/version.rb
CHANGED
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 '
|
8
|
+
require_relative 'freddy/version'
|
9
9
|
|
10
|
-
Dir["#{File.dirname(__FILE__)}/freddy/*.rb"].
|
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, &
|
80
|
+
def respond_to(destination, &)
|
81
81
|
@logger.info "Listening for requests on #{destination}"
|
82
82
|
|
83
83
|
channel = @connection.create_channel(prefetch: @prefetch_buffer_size)
|
@@ -85,13 +85,11 @@ class Freddy
|
|
85
85
|
handler_adapter_factory = MessageHandlerAdapters::Factory.new(producer)
|
86
86
|
|
87
87
|
Consumers::RespondToConsumer.consume(
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
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
|
+
&
|
95
93
|
)
|
96
94
|
end
|
97
95
|
|
@@ -134,17 +132,15 @@ class Freddy
|
|
134
132
|
# freddy.tap_into 'notifications.*' do |message|
|
135
133
|
# puts "Notification showed #{message.inspect}"
|
136
134
|
# end
|
137
|
-
def tap_into(pattern_or_patterns, options = {}, &
|
135
|
+
def tap_into(pattern_or_patterns, options = {}, &)
|
138
136
|
@logger.debug "Tapping into messages that match #{pattern_or_patterns}"
|
139
137
|
|
140
138
|
Consumers::TapIntoConsumer.consume(
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
},
|
147
|
-
&callback
|
139
|
+
thread_pool: Concurrent::FixedThreadPool.new(@prefetch_buffer_size),
|
140
|
+
patterns: Array(pattern_or_patterns),
|
141
|
+
channel: @connection.create_channel(prefetch: @prefetch_buffer_size),
|
142
|
+
options: options,
|
143
|
+
&
|
148
144
|
)
|
149
145
|
end
|
150
146
|
|
@@ -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
|
|
@@ -3,9 +3,10 @@ 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) }
|
@@ -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,43 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freddy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Glia TechMovers
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
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
|
@@ -114,14 +85,14 @@ dependencies:
|
|
114
85
|
requirements:
|
115
86
|
- - "~>"
|
116
87
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
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: '
|
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
|
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.
|
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: []
|