msgr 1.3.2 → 1.5.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/workflows/test.yml +83 -0
- data/.gitignore +17 -17
- data/.markdownlint.yml +22 -0
- data/.rubocop.yml +6 -2
- data/.vscode/ltex.dictionary.en-US.txt +1 -0
- data/Appraisals +13 -8
- data/CHANGELOG.md +85 -8
- data/Gemfile +1 -1
- data/README.md +17 -16
- data/gemfiles/rails_5.2.gemfile +2 -1
- data/gemfiles/rails_6.0.gemfile +2 -1
- data/gemfiles/rails_6.1.gemfile +2 -1
- data/gemfiles/rails_7.0.gemfile +15 -0
- data/gemfiles/{rails_master.gemfile → rails_head.gemfile} +2 -1
- data/lib/msgr/binding.rb +2 -2
- data/lib/msgr/channel.rb +2 -7
- data/lib/msgr/cli.rb +11 -12
- data/lib/msgr/client.rb +2 -2
- data/lib/msgr/connection.rb +2 -2
- data/lib/msgr/railtie.rb +1 -1
- data/lib/msgr/route.rb +2 -2
- data/lib/msgr/test_pool.rb +3 -3
- data/lib/msgr/version.rb +3 -3
- data/lib/msgr.rb +1 -3
- data/msgr.gemspec +6 -3
- data/renovate.json +5 -0
- data/scripts/simple_test.rb +1 -1
- data/spec/integration/dummy/app/consumers/test_consumer.rb +6 -1
- data/spec/integration/dummy/config/rabbitmq.yml +2 -0
- data/spec/integration/msgr/dispatcher_spec.rb +5 -6
- data/spec/integration/spec_helper.rb +7 -1
- data/spec/integration/test_controller_spec.rb +10 -2
- data/spec/unit/msgr/client_spec.rb +2 -2
- data/spec/unit/msgr/dispatcher_spec.rb +4 -4
- data/spec/unit/msgr/route_spec.rb +15 -1
- data/spec/unit/msgr/test_pool_spec.rb +14 -0
- data/spec/unit/msgr_spec.rb +3 -4
- metadata +14 -65
- data/.github/workflows/build.yml +0 -52
- data/.github/workflows/lint.yml +0 -20
- data/.travis.yml +0 -29
- data/spec/integration/dummy/db/test.sqlite3 +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d505941f2c4bf678a5d8c5185b2d65c510fcc08aa818eca251e83e8f0225b178
|
4
|
+
data.tar.gz: 3f78955ee1074190d7fa63384294ae1b09802fcb362645b2aa52b79062ab9057
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e421518963ac9b653faaab3da418687a96b4a7b91dfd931e7afc8d3166b247c711a2e6eb199bcef6fc0e83d970308b2998a152b80e32b3bc1d7f248af5fd161d
|
7
|
+
data.tar.gz: 776b325f75779d39ad2c254020082da70ef4bf5a0dc1ec601c392546472315b29cfc0821718f94491d023077d1d84c7617b15ed808b9fa3f9b2aef1de56dd151
|
@@ -0,0 +1,83 @@
|
|
1
|
+
name: test
|
2
|
+
on: [push]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
name: Ruby ${{ matrix.ruby }} / ${{ matrix.gemfile }}
|
6
|
+
runs-on: ubuntu-22.04
|
7
|
+
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
ruby:
|
11
|
+
- "3.2"
|
12
|
+
- "3.1"
|
13
|
+
- "3.0"
|
14
|
+
- "2.7"
|
15
|
+
gemfile:
|
16
|
+
- rails_5.2.gemfile
|
17
|
+
- rails_6.0.gemfile
|
18
|
+
- rails_6.1.gemfile
|
19
|
+
- rails_7.0.gemfile
|
20
|
+
exclude:
|
21
|
+
- ruby: "3.2"
|
22
|
+
gemfile: rails_5.2.gemfile
|
23
|
+
- ruby: "3.2"
|
24
|
+
gemfile: rails_6.0.gemfile
|
25
|
+
- ruby: "3.1"
|
26
|
+
gemfile: rails_5.2.gemfile
|
27
|
+
- ruby: "3.1"
|
28
|
+
gemfile: rails_6.0.gemfile
|
29
|
+
- ruby: "3.0"
|
30
|
+
gemfile: rails_5.2.gemfile
|
31
|
+
fail-fast: False
|
32
|
+
|
33
|
+
services:
|
34
|
+
rabbitmq:
|
35
|
+
image: rabbitmq:latest
|
36
|
+
options: >-
|
37
|
+
--health-cmd "rabbitmqctl node_health_check"
|
38
|
+
--health-interval 10s
|
39
|
+
--health-timeout 5s
|
40
|
+
--health-retries 5
|
41
|
+
ports:
|
42
|
+
- 5672:5672
|
43
|
+
|
44
|
+
env:
|
45
|
+
AMQP_SERVER: amqp://localhost:5672
|
46
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}
|
47
|
+
BUNDLE_JOBS: 4
|
48
|
+
BUNDLE_RETRY: 10
|
49
|
+
BUNDLE_WITHOUT: development
|
50
|
+
|
51
|
+
steps:
|
52
|
+
- uses: actions/checkout@master
|
53
|
+
|
54
|
+
- name: Setup Ruby
|
55
|
+
uses: ruby/setup-ruby@v1
|
56
|
+
with:
|
57
|
+
ruby-version: ${{ matrix.ruby }}
|
58
|
+
bundler-cache: True
|
59
|
+
|
60
|
+
- name: Run unit tests
|
61
|
+
run: bundle exec rspec -Ispec/unit --color spec/unit
|
62
|
+
|
63
|
+
- name: Run integration tests
|
64
|
+
run: bundle exec rspec -Ispec/integration --color spec/integration
|
65
|
+
|
66
|
+
rubocop:
|
67
|
+
name: rubocop
|
68
|
+
runs-on: ubuntu-22.04
|
69
|
+
|
70
|
+
env:
|
71
|
+
BUNDLE_JOBS: 4
|
72
|
+
BUNDLE_RETRY: 10
|
73
|
+
BUNDLE_WITHOUT: development
|
74
|
+
|
75
|
+
steps:
|
76
|
+
- uses: actions/checkout@master
|
77
|
+
- uses: ruby/setup-ruby@v1
|
78
|
+
with:
|
79
|
+
ruby-version: 3.0
|
80
|
+
bundler-cache: true
|
81
|
+
|
82
|
+
- name: Run rubocop
|
83
|
+
run: bundle exec rubocop --parallel --color
|
data/.gitignore
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
|
2
|
-
*.rbc
|
1
|
+
_yardoc
|
3
2
|
.bundle
|
4
3
|
.config
|
4
|
+
.idea
|
5
|
+
.rbx
|
6
|
+
.rspec
|
5
7
|
.yardoc
|
6
|
-
|
7
|
-
|
8
|
-
|
8
|
+
*.gem
|
9
|
+
*.iml
|
10
|
+
*.lock
|
11
|
+
*.log
|
12
|
+
*.rbc
|
9
13
|
coverage
|
10
14
|
doc/
|
15
|
+
InstalledFiles
|
11
16
|
lib/bundler/man
|
12
17
|
pkg
|
18
|
+
pmip
|
13
19
|
rdoc
|
20
|
+
spec/integration/dummy/.generators
|
21
|
+
spec/integration/dummy/.rakeTasks
|
22
|
+
spec/integration/dummy/.sass-cache
|
23
|
+
spec/integration/dummy/db/*.sqlite3
|
24
|
+
spec/integration/dummy/db/*.sqlite3-journal
|
25
|
+
spec/integration/dummy/tmp
|
14
26
|
spec/reports
|
15
27
|
test/tmp
|
16
28
|
test/version_tmp
|
17
29
|
tmp
|
18
|
-
.idea
|
19
|
-
pmip
|
20
|
-
*.iml
|
21
|
-
.rbx
|
22
|
-
.rspec
|
23
|
-
*.log
|
24
|
-
spec/integration/dummy/db/*.sqlite3
|
25
|
-
spec/integration/dummy/db/*.sqlite3-journal
|
26
|
-
spec/integration/dummy/tmp
|
27
|
-
spec/integration/dummy/.sass-cache
|
28
|
-
spec/integration/dummy/.generators
|
29
|
-
spec/integration/dummy/.rakeTasks
|
data/.markdownlint.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# markdownlint config
|
2
|
+
|
3
|
+
# The CHANGELOG contains duplicated headers by design
|
4
|
+
MD024: false
|
5
|
+
|
6
|
+
# MD013/line-length: disable line length for all. We prefer lines as
|
7
|
+
# long as paragraph with in-editor line breaks.
|
8
|
+
MD013: false
|
9
|
+
|
10
|
+
# MD033/no-inline-html: allow often need tags
|
11
|
+
MD033:
|
12
|
+
allowed_elements:
|
13
|
+
- figure
|
14
|
+
- figcaption
|
15
|
+
|
16
|
+
# MD046/code-block-style: code block style conflicting with
|
17
|
+
# admonitions...
|
18
|
+
MD046: false
|
19
|
+
|
20
|
+
# MD048/code-fence-style: code fence style
|
21
|
+
MD048:
|
22
|
+
style: backtick
|
data/.rubocop.yml
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
inherit_gem:
|
2
|
-
|
2
|
+
rubocop-config: default.yml
|
3
3
|
|
4
4
|
AllCops:
|
5
|
-
TargetRubyVersion: 2.
|
5
|
+
TargetRubyVersion: 2.7
|
6
|
+
SuggestExtensions: False
|
6
7
|
Exclude:
|
7
8
|
- gemfiles/**/*
|
8
9
|
- spec/integration/dummy/**/*
|
@@ -11,3 +12,6 @@ AllCops:
|
|
11
12
|
Layout/LineLength:
|
12
13
|
Exclude:
|
13
14
|
- spec/**/*
|
15
|
+
|
16
|
+
RSpec/MultipleMemoizedHelpers:
|
17
|
+
Max: 15
|
@@ -0,0 +1 @@
|
|
1
|
+
AMQP
|
data/Appraisals
CHANGED
@@ -1,18 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# -*- mode: ruby -*-
|
3
2
|
|
4
|
-
|
5
|
-
gem 'rails', '~> 5.2.0'
|
6
|
-
end
|
3
|
+
# vim: ft=ruby
|
7
4
|
|
8
|
-
appraise 'rails-
|
9
|
-
|
10
|
-
end
|
5
|
+
# appraise 'rails-5.2' do
|
6
|
+
# gem 'rails', '~> 5.2.0'
|
7
|
+
# end
|
8
|
+
|
9
|
+
# appraise 'rails-6.0' do
|
10
|
+
# gem 'rails', '~> 6.0.0'
|
11
|
+
# end
|
11
12
|
|
12
13
|
appraise 'rails-6.1' do
|
13
14
|
gem 'rails', '~> 6.1.0'
|
14
15
|
end
|
15
16
|
|
16
|
-
appraise 'rails-
|
17
|
+
appraise 'rails-7.0' do
|
18
|
+
gem 'rails', '~> 6.1.0'
|
19
|
+
end
|
20
|
+
|
21
|
+
appraise 'rails-head' do
|
17
22
|
gem 'rails', git: 'https://github.com/rails/rails', require: 'rails'
|
18
23
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,54 +1,99 @@
|
|
1
1
|
# Changelog
|
2
|
+
|
2
3
|
All notable changes to this project will be documented in this file.
|
3
4
|
|
4
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
5
6
|
|
6
7
|
## [Unreleased]
|
7
8
|
|
9
|
+
## [1.5.0] - 2023-08-16
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
- Support for Ruby 3.1 and 3.2
|
14
|
+
|
15
|
+
### Changed
|
16
|
+
|
17
|
+
- Drop support for Ruby < 2.7
|
18
|
+
|
19
|
+
### Fixed
|
20
|
+
|
21
|
+
- `TestPool#run` passing down keyword arguments
|
22
|
+
|
23
|
+
## [1.4.0] - 2022-01-10
|
24
|
+
|
25
|
+
### Added
|
26
|
+
|
27
|
+
- Support for namespaced consumer classes in routes file (#48, #49)
|
28
|
+
|
29
|
+
### Removed
|
30
|
+
|
31
|
+
- Unused `Channel#reject` method
|
32
|
+
|
8
33
|
## [1.3.2] - 2021-09-21
|
34
|
+
|
9
35
|
### Fixed
|
36
|
+
|
10
37
|
- Rake task `msgr:drain` ran before all routes were initialized (#44)
|
11
38
|
|
12
39
|
## [1.3.1] - 2020-12-16
|
40
|
+
|
13
41
|
### Fixed
|
42
|
+
|
14
43
|
- Delay setting default options for correct relative routing file path
|
15
44
|
|
16
45
|
## [1.3.0] - 2020-12-16
|
46
|
+
|
17
47
|
### Added
|
48
|
+
|
18
49
|
- Support and testing for Rails 6.1
|
19
50
|
- Rake task for purging all known queues (#43)
|
20
51
|
|
21
52
|
### Changed
|
53
|
+
|
22
54
|
- High-risk feature to autostart client in-process has been removed without replacement
|
23
55
|
- Parsing config is more relaxed now but directly based on YAML boolean values
|
24
56
|
|
25
57
|
## [1.2.0] - 2019-06-27
|
58
|
+
|
26
59
|
### Added
|
60
|
+
|
27
61
|
- Test support of Rails 5.2
|
28
62
|
|
29
63
|
### Changed
|
30
|
-
|
64
|
+
|
65
|
+
- Serialize JSON using core JSON instead of `MultiJson`
|
31
66
|
- Remove application/text fallback for payload (#25)
|
32
67
|
|
33
68
|
## [1.1.0] - 2018-07-25
|
69
|
+
|
34
70
|
### Added
|
71
|
+
|
35
72
|
- New command line runner
|
36
73
|
|
37
74
|
## [1.0.0] - 2017-12-29
|
75
|
+
|
38
76
|
### Changed
|
77
|
+
|
39
78
|
- Configure prefetch per binding and disable auto ack in consumer for customized batch processing (#15)
|
40
79
|
- Replace usage of deprecated exception class (#12)
|
41
80
|
|
42
81
|
## [0.15.2] - 2017-09-04
|
82
|
+
|
43
83
|
### Fixed
|
84
|
+
|
44
85
|
- Fix regression in parsing `:uri` config with empty path
|
45
86
|
|
46
87
|
## [0.15.1] - 2017-07-31
|
88
|
+
|
47
89
|
### Fixed
|
90
|
+
|
48
91
|
- Fix errors with additional configuration keys for AMQP connection (#13)
|
49
92
|
|
50
93
|
## [0.15.0] - 2017-03-30
|
94
|
+
|
51
95
|
### Added
|
96
|
+
|
52
97
|
- Add new configuration option `:raise_exceptions` that can be used to enable
|
53
98
|
exceptions being raised from consumers. Mostly useful for testing consumers.
|
54
99
|
Defaults to `false`.
|
@@ -56,69 +101,101 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
56
101
|
- Add methods for purging queues
|
57
102
|
|
58
103
|
### Changed
|
59
|
-
|
104
|
+
|
105
|
+
- Rework `TestPool` timeout handling to not account processing time
|
60
106
|
|
61
107
|
## [0.14.1] - 2016-02-17
|
108
|
+
|
62
109
|
### Fixed
|
110
|
+
|
63
111
|
- Fix loading test pool source file
|
64
112
|
|
65
113
|
## [0.14.0] - 2016-02-17
|
114
|
+
|
66
115
|
### Added
|
116
|
+
|
67
117
|
- Add experimental test pool (`Msgr::TestPool`)
|
68
118
|
|
69
119
|
## [0.13.0] - 2015-08-24
|
120
|
+
|
70
121
|
### Changed
|
122
|
+
|
71
123
|
- Use `Rails.application.config_for` if available.
|
72
124
|
|
73
125
|
## [0.12.2] - 2015-01-14
|
126
|
+
|
74
127
|
### Changed
|
128
|
+
|
75
129
|
- Do not delete the exchange on stop delete:true - as the exchange is changed
|
76
130
|
|
77
131
|
## [0.12.1] - 2014-11-06
|
132
|
+
|
78
133
|
### Changed
|
134
|
+
|
79
135
|
- Loose dependency on bunny to allow `~> 1.4` for stone-age old RabbitMQ servers.
|
80
136
|
|
81
137
|
## [0.11.0-rc3] - 2014-04-11
|
138
|
+
|
82
139
|
### Added
|
83
|
-
|
140
|
+
|
141
|
+
- Add `checkcredentials` config option to disable initial connect to RabbitMQ
|
84
142
|
server to check the credentials
|
85
143
|
|
86
144
|
### Changed
|
145
|
+
|
87
146
|
- Define pool_class by string to make it useable with rails
|
88
147
|
|
89
148
|
## [0.11.0-rc2] - 2014-03-29
|
149
|
+
|
90
150
|
### Added
|
91
|
-
|
151
|
+
|
152
|
+
- Add `#nack` for messages when an error is rescued by dispatcher
|
92
153
|
|
93
154
|
## [0.11.0-rc1] - 2014-03-29
|
155
|
+
|
94
156
|
### Added
|
95
|
-
|
157
|
+
|
158
|
+
- Add `pool_class` config to override pool classes used by dispatcher
|
96
159
|
|
97
160
|
## [0.4.1] - 2014-03-18
|
161
|
+
|
98
162
|
### Fixed
|
163
|
+
|
99
164
|
- Fix bug with empty routes on client start
|
100
165
|
|
101
166
|
## [0.4.0] - 2014-03-04
|
167
|
+
|
102
168
|
### Changed
|
103
|
-
|
169
|
+
|
170
|
+
- Improve `Railtie` and autostart code
|
104
171
|
|
105
172
|
## 0.4.0 - 0.10.0
|
173
|
+
|
106
174
|
### Changed
|
175
|
+
|
107
176
|
- Some lost history due to several crises
|
108
177
|
|
109
178
|
## [0.3.0] - 2014-03-03
|
179
|
+
|
110
180
|
### Added
|
181
|
+
|
111
182
|
- Support for forking web servers like unicorn
|
112
183
|
|
113
184
|
## [0.2.1] - 2014-02-26
|
185
|
+
|
114
186
|
### Fixed
|
115
|
-
|
187
|
+
|
188
|
+
- Fix wrong Rails initializer code - was not use the config file
|
116
189
|
|
117
190
|
## [0.2.0] - 2014-02-21
|
191
|
+
|
118
192
|
### Changed
|
193
|
+
|
119
194
|
- Improve rails initializer code
|
120
195
|
|
121
|
-
[Unreleased]: https://github.com/jgraichen/msgr/compare/v1.
|
196
|
+
[Unreleased]: https://github.com/jgraichen/msgr/compare/v1.5.0...HEAD
|
197
|
+
[1.5.0]: https://github.com/jgraichen/msgr/compare/v1.4.0...v1.5.0
|
198
|
+
[1.4.0]: https://github.com/jgraichen/msgr/compare/v1.3.2...v1.4.0
|
122
199
|
[1.3.2]: https://github.com/jgraichen/msgr/compare/v1.3.1...v1.3.2
|
123
200
|
[1.3.1]: https://github.com/jgraichen/msgr/compare/v1.3.0...v1.3.1
|
124
201
|
[1.3.0]: https://github.com/jgraichen/msgr/compare/v1.2.0...v1.3.0
|
data/Gemfile
CHANGED
@@ -4,11 +4,11 @@ source 'https://rubygems.org'
|
|
4
4
|
|
5
5
|
gem 'appraisal'
|
6
6
|
gem 'coveralls'
|
7
|
-
gem 'my-rubocop', github: 'jgraichen/my-rubocop'
|
8
7
|
gem 'rake'
|
9
8
|
gem 'rake-release', '~> 1.1'
|
10
9
|
gem 'rspec', '~> 3.0'
|
11
10
|
gem 'rspec-rails'
|
11
|
+
gem 'rubocop-config', github: 'jgraichen/rubocop-config', ref: 'v11', require: false
|
12
12
|
|
13
13
|
gem 'rails'
|
14
14
|
gem 'sqlite3'
|
data/README.md
CHANGED
@@ -1,34 +1,38 @@
|
|
1
|
-
# Msgr:
|
1
|
+
# Msgr: _Rails-like Messaging Framework_
|
2
2
|
|
3
|
-
|
4
|
-
[](https://travis-ci.org/jgraichen/msgr)
|
6
|
-
[](https://github.com/jgraichen/msgr/actions?query=workflow%3ABuild+branch%3Amaster)
|
3
|
+
[](https://rubygems.org/gems/msgr)
|
4
|
+
[](https://github.com/jgraichen/msgr/actions/workflows/test.yml)
|
7
5
|
[](http://rubydoc.info/github/jgraichen/msgr/master/frames)
|
8
6
|
|
9
7
|
You know it and you like it. Using Rails you can just declare your routes and
|
10
8
|
create a controller. That's all you need to process requests.
|
11
9
|
|
12
|
-
With
|
10
|
+
With _Msgr_ you can do the same for asynchronous AMQP messaging. Just define
|
13
11
|
your routes, create your consumer and watch your app processing messages.
|
14
12
|
|
15
13
|
## Installation
|
16
14
|
|
17
15
|
Add this line to your application's Gemfile:
|
18
16
|
|
19
|
-
|
17
|
+
```ruby
|
18
|
+
gem 'msgr', '~> 1.5'
|
19
|
+
```
|
20
20
|
|
21
21
|
And then execute:
|
22
22
|
|
23
|
-
|
23
|
+
```console
|
24
|
+
bundle
|
25
|
+
```
|
24
26
|
|
25
27
|
Or install it yourself as:
|
26
28
|
|
27
|
-
|
29
|
+
```console
|
30
|
+
gem install msgr
|
31
|
+
```
|
28
32
|
|
29
33
|
## Usage
|
30
34
|
|
31
|
-
After adding 'msgr' to your
|
35
|
+
After adding 'msgr' to your Gemfile create a `config/rabbitmq.yml` like this:
|
32
36
|
|
33
37
|
```yaml
|
34
38
|
common: &common
|
@@ -83,7 +87,6 @@ end
|
|
83
87
|
|
84
88
|
Run client daemon with `bundle exec msgr`.
|
85
89
|
|
86
|
-
|
87
90
|
## Advanced configuration
|
88
91
|
|
89
92
|
### Manual message acknowledgments
|
@@ -106,10 +109,9 @@ end
|
|
106
109
|
|
107
110
|
Per default each message queue has a prefetch count of 1. This value can be changed when specifying the messaging routes:
|
108
111
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
112
|
+
```ruby
|
113
|
+
route 'local.test.index', to: 'test#index', prefetch: 42
|
114
|
+
```
|
113
115
|
|
114
116
|
## Testing
|
115
117
|
|
@@ -154,7 +156,6 @@ it 'executes the consumer' do
|
|
154
156
|
end
|
155
157
|
```
|
156
158
|
|
157
|
-
|
158
159
|
## Contributing
|
159
160
|
|
160
161
|
1. Fork it
|
data/gemfiles/rails_5.2.gemfile
CHANGED
@@ -4,8 +4,9 @@ source "https://rubygems.org"
|
|
4
4
|
|
5
5
|
gem "appraisal"
|
6
6
|
gem "coveralls"
|
7
|
-
gem "my-rubocop", github: "jgraichen/my-rubocop"
|
7
|
+
gem "my-rubocop", github: "jgraichen/my-rubocop", ref: "v4"
|
8
8
|
gem "rake"
|
9
|
+
gem "rake-release", "~> 1.1"
|
9
10
|
gem "rspec", "~> 3.0"
|
10
11
|
gem "rspec-rails"
|
11
12
|
gem "rails", "~> 5.2.0"
|
data/gemfiles/rails_6.0.gemfile
CHANGED
@@ -4,8 +4,9 @@ source "https://rubygems.org"
|
|
4
4
|
|
5
5
|
gem "appraisal"
|
6
6
|
gem "coveralls"
|
7
|
-
gem "my-rubocop", github: "jgraichen/my-rubocop"
|
7
|
+
gem "my-rubocop", github: "jgraichen/my-rubocop", ref: "v4"
|
8
8
|
gem "rake"
|
9
|
+
gem "rake-release", "~> 1.1"
|
9
10
|
gem "rspec", "~> 3.0"
|
10
11
|
gem "rspec-rails"
|
11
12
|
gem "rails", "~> 6.0.0"
|
data/gemfiles/rails_6.1.gemfile
CHANGED
@@ -4,8 +4,9 @@ source "https://rubygems.org"
|
|
4
4
|
|
5
5
|
gem "appraisal"
|
6
6
|
gem "coveralls"
|
7
|
-
gem "my-rubocop", github: "jgraichen/my-rubocop"
|
7
|
+
gem "my-rubocop", github: "jgraichen/my-rubocop", ref: "v4"
|
8
8
|
gem "rake"
|
9
|
+
gem "rake-release", "~> 1.1"
|
9
10
|
gem "rspec", "~> 3.0"
|
10
11
|
gem "rspec-rails"
|
11
12
|
gem "rails", "~> 6.1.0"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal"
|
6
|
+
gem "coveralls"
|
7
|
+
gem "my-rubocop", github: "jgraichen/my-rubocop", ref: "v4"
|
8
|
+
gem "rake"
|
9
|
+
gem "rake-release", "~> 1.1"
|
10
|
+
gem "rspec", "~> 3.0"
|
11
|
+
gem "rspec-rails"
|
12
|
+
gem "rails", "~> 6.1.0"
|
13
|
+
gem "sqlite3"
|
14
|
+
|
15
|
+
gemspec path: "../"
|
@@ -4,8 +4,9 @@ source "https://rubygems.org"
|
|
4
4
|
|
5
5
|
gem "appraisal"
|
6
6
|
gem "coveralls"
|
7
|
-
gem "my-rubocop", github: "jgraichen/my-rubocop"
|
7
|
+
gem "my-rubocop", github: "jgraichen/my-rubocop", ref: "v4"
|
8
8
|
gem "rake"
|
9
|
+
gem "rake-release", "~> 1.1"
|
9
10
|
gem "rspec", "~> 3.0"
|
10
11
|
gem "rspec-rails"
|
11
12
|
gem "rails", git: "https://github.com/rails/rails", require: "rails"
|
data/lib/msgr/binding.rb
CHANGED
@@ -10,7 +10,7 @@ module Msgr
|
|
10
10
|
:dispatcher,
|
11
11
|
:queue,
|
12
12
|
:route,
|
13
|
-
:subscription
|
13
|
+
:subscription,
|
14
14
|
)
|
15
15
|
|
16
16
|
def initialize(connection, route, dispatcher)
|
@@ -54,7 +54,7 @@ module Msgr
|
|
54
54
|
rescue StandardError => e
|
55
55
|
log(:error) do
|
56
56
|
"Rescued error from subscribe: #{e.class.name}: " \
|
57
|
-
|
57
|
+
"#{e}\n#{e.backtrace.join("\n")}"
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
data/lib/msgr/channel.rb
CHANGED
@@ -22,7 +22,7 @@ module Msgr
|
|
22
22
|
@channel.topic(prefix(EXCHANGE_NAME), durable: true).tap do |ex|
|
23
23
|
log(:debug) do
|
24
24
|
"Created exchange #{ex.name} (type: #{ex.type}, " \
|
25
|
-
|
25
|
+
"durable: #{ex.durable?}, auto_delete: #{ex.auto_delete?})"
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -32,7 +32,7 @@ module Msgr
|
|
32
32
|
@channel.queue(prefix(name), durable: true, **opts).tap do |queue|
|
33
33
|
log(:debug) do
|
34
34
|
"Create queue #{queue.name} (durable: #{queue.durable?}, " \
|
35
|
-
|
35
|
+
"auto_delete: #{queue.auto_delete?})"
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -55,11 +55,6 @@ module Msgr
|
|
55
55
|
log(:debug) { "Nacked message: #{delivery_tag}" }
|
56
56
|
end
|
57
57
|
|
58
|
-
def reject(delivery_tag, requeue = true)
|
59
|
-
@channel.reject delivery_tag, requeue
|
60
|
-
log(:debug) { "Rejected message: #{delivery_tag}" }
|
61
|
-
end
|
62
|
-
|
63
58
|
def close
|
64
59
|
@channel.close if @channel.open?
|
65
60
|
end
|
data/lib/msgr/cli.rb
CHANGED
@@ -41,17 +41,16 @@ module Msgr
|
|
41
41
|
Signal.trap('INT') { w.puts 'INT' }
|
42
42
|
Signal.trap('TERM') { w.puts 'TERM' }
|
43
43
|
|
44
|
-
Msgr.logger = Logger.new(
|
44
|
+
Msgr.logger = Logger.new($stdout)
|
45
45
|
Msgr.client.start
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
end
|
47
|
+
# Wait until we receive a signal
|
48
|
+
r.wait_readable
|
49
|
+
case r.gets.strip
|
50
|
+
when 'INT', 'TERM' # Safe shutdown
|
51
|
+
Msgr.client.stop
|
52
|
+
else # Error
|
53
|
+
exit 1
|
55
54
|
end
|
56
55
|
end
|
57
56
|
|
@@ -65,20 +64,20 @@ module Msgr
|
|
65
64
|
def parse(_argv)
|
66
65
|
options = {
|
67
66
|
require: Dir.pwd,
|
68
|
-
environment: 'development'
|
67
|
+
environment: 'development',
|
69
68
|
}
|
70
69
|
|
71
70
|
OptionParser.new do |o|
|
72
71
|
o.on(
|
73
72
|
'-r', '--require [PATH|DIR]',
|
74
|
-
'Location of Rails application (default to current directory)'
|
73
|
+
'Location of Rails application (default to current directory)',
|
75
74
|
) do |arg|
|
76
75
|
options[:require] = arg
|
77
76
|
end
|
78
77
|
|
79
78
|
o.on(
|
80
79
|
'-e', '--environment [env]',
|
81
|
-
'Rails environment (default to development)'
|
80
|
+
'Rails environment (default to development)',
|
82
81
|
) do |arg|
|
83
82
|
options[:environment] = arg
|
84
83
|
end
|