msgr 0.15.0.1.b136 → 0.15.0.1.b139
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/.travis.yml +2 -0
- data/Gemfile +8 -6
- data/gemfiles/Gemfile.rails-master +6 -0
- data/lib/msgr/client.rb +60 -14
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dc6380bab1ce06ee0a36d47942d9a6c3fa56efb5
|
|
4
|
+
data.tar.gz: 92bb7ec6e91aeb2edab35d1b1af12aa0097de34c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2653a9e0db967ccdd1a4869c77f645ddca8bfffa6961edb3c1d8837462bf237bfcf5671f27f438121d827a0f75a65a1ca5a4ea7409c55dada63997f7c0bc5e1a
|
|
7
|
+
data.tar.gz: 8546dffaf7a57db1bc58bb531f66d884a04cb3f97018b4061f4f19b31c70864e8109734781e658b85a73bb67ec105232ce6801911e0b29d10bbd85198d39e25d
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
# Development gems
|
|
4
6
|
#
|
|
7
|
+
gem 'coveralls'
|
|
8
|
+
gem 'fuubar'
|
|
5
9
|
gem 'rake'
|
|
6
10
|
gem 'rspec', '~> 3.0'
|
|
7
|
-
gem 'fuubar'
|
|
8
|
-
gem 'coveralls'
|
|
9
11
|
|
|
10
12
|
# Doc
|
|
11
13
|
group :development do
|
|
12
|
-
gem 'yard', '~> 0.9.8'
|
|
13
|
-
gem 'listen'
|
|
14
|
-
gem 'guard-yard'
|
|
15
14
|
gem 'guard-rspec'
|
|
15
|
+
gem 'guard-yard'
|
|
16
|
+
gem 'listen'
|
|
16
17
|
gem 'redcarpet'
|
|
18
|
+
gem 'yard', '~> 0.9.8'
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
group :rails do
|
|
20
|
-
gem 'rails', '>= 3.2'
|
|
22
|
+
gem 'rails', '>= 3.2' unless $RAILS
|
|
21
23
|
gem 'rspec-rails'
|
|
22
24
|
gem 'sqlite3'
|
|
23
25
|
end
|
|
@@ -5,3 +5,9 @@ self.instance_eval Bundler.read_file 'Gemfile'
|
|
|
5
5
|
|
|
6
6
|
gem 'activesupport', git: 'https://github.com/rails/rails'
|
|
7
7
|
gem 'bunny', ENV['BUNNY_VERSION'] if ENV['BUNNY_VERSION']
|
|
8
|
+
|
|
9
|
+
group :rails do
|
|
10
|
+
$RAILS = true
|
|
11
|
+
gem 'rails', '>= 3.2', git: 'https://github.com/rails/rails'
|
|
12
|
+
gem 'arel', git: 'https://github.com/rails/arel'
|
|
13
|
+
end
|
data/lib/msgr/client.rb
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'uri'
|
|
4
|
+
require 'cgi'
|
|
5
|
+
|
|
2
6
|
module Msgr
|
|
3
7
|
# rubocop:disable Metrics/ClassLength
|
|
4
8
|
class Client
|
|
5
9
|
include Logging
|
|
6
|
-
attr_reader :uri, :config
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
# rubocop:disable Metrics/MethodLength
|
|
10
|
-
def initialize(config = {})
|
|
11
|
-
@uri = ::URI.parse config[:uri] ? config.delete(:uri) : 'amqp://localhost/'
|
|
12
|
-
config[:pass] ||= @uri.password
|
|
11
|
+
attr_reader :config
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
@
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
# rubocop:disable MethodLength
|
|
14
|
+
def initialize(config = {})
|
|
15
|
+
@config = {
|
|
16
|
+
host: '127.0.0.1',
|
|
17
|
+
vhost: '/',
|
|
18
|
+
max: 2
|
|
19
|
+
}
|
|
20
20
|
|
|
21
|
-
@config
|
|
22
|
-
@config
|
|
21
|
+
@config.merge! parse(config.delete(:uri)) if config.key?(:uri)
|
|
22
|
+
@config.merge! config.symbolize_keys
|
|
23
23
|
|
|
24
24
|
@mutex = ::Mutex.new
|
|
25
25
|
@routes = Routes.new
|
|
@@ -27,6 +27,30 @@ module Msgr
|
|
|
27
27
|
|
|
28
28
|
log(:debug) { "Created new client on process ##{@pid}..." }
|
|
29
29
|
end
|
|
30
|
+
# rubocop:enable all
|
|
31
|
+
|
|
32
|
+
# rubocop:disable AbcSize
|
|
33
|
+
# rubocop:disable MethodLength
|
|
34
|
+
# rubocop:disable PerceivedComplexity
|
|
35
|
+
# rubocop:disable CyclomaticComplexity
|
|
36
|
+
def uri
|
|
37
|
+
@uri = begin
|
|
38
|
+
uri = ::URI.parse('amqp://localhost')
|
|
39
|
+
|
|
40
|
+
uri.user = CGI.escape(config[:user]) if config.key?(:user)
|
|
41
|
+
uri.password = '****' if config.key?(:pass)
|
|
42
|
+
uri.host = config[:host] if config.key?(:host)
|
|
43
|
+
uri.port = config[:port] if config.key?(:port)
|
|
44
|
+
uri.scheme = config[:ssl] ? 'amqps' : 'amqp'
|
|
45
|
+
|
|
46
|
+
if config.key?(:vhost) && config[:vhost] != '/'
|
|
47
|
+
uri.path = "/#{CGI.escape(config[:vhost])}"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
uri
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
# rubocop:enable all
|
|
30
54
|
|
|
31
55
|
def running?
|
|
32
56
|
mutex.synchronize do
|
|
@@ -35,6 +59,7 @@ module Msgr
|
|
|
35
59
|
end
|
|
36
60
|
end
|
|
37
61
|
|
|
62
|
+
# rubocop:disable AbcSize
|
|
38
63
|
def start
|
|
39
64
|
mutex.synchronize do
|
|
40
65
|
check_process!
|
|
@@ -47,6 +72,7 @@ module Msgr
|
|
|
47
72
|
connection.bind(@routes)
|
|
48
73
|
end
|
|
49
74
|
end
|
|
75
|
+
# rubocop:enable all
|
|
50
76
|
|
|
51
77
|
def connect
|
|
52
78
|
mutex.synchronize do
|
|
@@ -59,6 +85,7 @@ module Msgr
|
|
|
59
85
|
end
|
|
60
86
|
end
|
|
61
87
|
|
|
88
|
+
# rubocop:disable AbcSize
|
|
62
89
|
def stop(opts = {})
|
|
63
90
|
mutex.synchronize do
|
|
64
91
|
check_process!
|
|
@@ -73,6 +100,7 @@ module Msgr
|
|
|
73
100
|
reset
|
|
74
101
|
end
|
|
75
102
|
end
|
|
103
|
+
# rubocop:enable all
|
|
76
104
|
|
|
77
105
|
def purge(release: false)
|
|
78
106
|
mutex.synchronize do
|
|
@@ -155,5 +183,23 @@ module Msgr
|
|
|
155
183
|
@bindings = nil
|
|
156
184
|
@dispatcher = nil
|
|
157
185
|
end
|
|
186
|
+
|
|
187
|
+
# rubocop:disable AbcSize
|
|
188
|
+
def parse(uri)
|
|
189
|
+
# Legacy parsing of URI configuration; does not follow usual
|
|
190
|
+
# AMQP vhost encoding but used regular URL path
|
|
191
|
+
uri = ::URI.parse(uri)
|
|
192
|
+
|
|
193
|
+
config = {}
|
|
194
|
+
config[:user] ||= uri.user if uri.user
|
|
195
|
+
config[:pass] ||= uri.password if uri.password
|
|
196
|
+
config[:host] ||= uri.host if uri.host
|
|
197
|
+
config[:port] ||= uri.port if uri.port
|
|
198
|
+
config[:vhost] ||= uri.path if uri.path
|
|
199
|
+
config[:ssl] ||= uri.scheme.casecmp('amqps').zero?
|
|
200
|
+
|
|
201
|
+
config
|
|
202
|
+
end
|
|
203
|
+
# rubocop:enable all
|
|
158
204
|
end
|
|
159
205
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: msgr
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.15.0.1.
|
|
4
|
+
version: 0.15.0.1.b139
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jan Graichen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-07-
|
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|