activemessaging-kestrel-adapter 1.0.1 → 1.0.2
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.
- data/History.txt +4 -0
- data/lib/active_messaging/adapters/kestrel.rb +25 -3
- data/version.txt +1 -1
- metadata +12 -12
data/History.txt
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
== 1.0.2 / 2012-02-10
|
2
|
+
* Scrub queue names of illegal characters (according to kestrel v2.1.5). The illegal
|
3
|
+
chars are '.', '/', '~'.
|
4
|
+
|
1
5
|
== 1.0.1 / 2012-01-18
|
2
6
|
* Call load_extensions on ActiveMessaging before registering the adapter. Avoids
|
3
7
|
unresolved references to ActiveMessaging::Gateway.
|
@@ -6,6 +6,11 @@ module ActiveMessaging
|
|
6
6
|
# This module contains code to integrate the ActiveMessaging framework with a
|
7
7
|
# kestrel message queue server.
|
8
8
|
module Kestrel
|
9
|
+
QUEUE_NAME_NORMALIZATIONS = {
|
10
|
+
'/' => '__4S__',
|
11
|
+
'.' => '__D0T__',
|
12
|
+
'~' => '__T1L__'
|
13
|
+
}
|
9
14
|
# Simple struct for wrapping received messages
|
10
15
|
Message = Struct.new(:headers, :body, :destination) do
|
11
16
|
def matches_subscription?(subscription)
|
@@ -105,7 +110,7 @@ module ActiveMessaging
|
|
105
110
|
queues.each do |queue|
|
106
111
|
KESTREL_STATS_QUEUE_KEYS.each do |key|
|
107
112
|
stats_key = "queue_#{queue}_#{key}"
|
108
|
-
denormalized_name = queue.gsub('
|
113
|
+
denormalized_name = queue.gsub('FS', '/') # denormalize the name ...
|
109
114
|
return_hash[server_def][denormalized_name][key] = stats_hash[stats_key]
|
110
115
|
end
|
111
116
|
end
|
@@ -186,10 +191,27 @@ module ActiveMessaging
|
|
186
191
|
logger
|
187
192
|
end
|
188
193
|
|
194
|
+
def denormalize(name)
|
195
|
+
@denormalized_names ||= Hash.new do |h,k|
|
196
|
+
newkey = k
|
197
|
+
QUEUE_NAME_NORMALIZATIONS.each do |bad, good|
|
198
|
+
newkey = newkey.gsub(good, bad)
|
199
|
+
end
|
200
|
+
h[k] = newkey
|
201
|
+
end
|
202
|
+
@denormalized_names[name]
|
203
|
+
end
|
204
|
+
|
189
205
|
def normalize(name)
|
190
|
-
# Kestrel doesn't like
|
206
|
+
# Kestrel doesn't like certain chars in queue names, so get rid of them
|
191
207
|
# (and memoize the calculation)
|
192
|
-
@normalized_names ||= Hash.new
|
208
|
+
@normalized_names ||= Hash.new do |h,k|
|
209
|
+
newkey = k
|
210
|
+
QUEUE_NAME_NORMALIZATIONS.each do |bad, good|
|
211
|
+
newkey = newkey.gsub(bad, good)
|
212
|
+
end
|
213
|
+
h[k] = newkey
|
214
|
+
end
|
193
215
|
@normalized_names[name]
|
194
216
|
end
|
195
217
|
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.2
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemessaging-kestrel-adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-10 00:00:00.000000000 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: memcache-client
|
17
|
-
requirement: &
|
17
|
+
requirement: &70195407021820 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 1.8.5
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70195407021820
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: activemessaging
|
28
|
-
requirement: &
|
28
|
+
requirement: &70195407020720 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.7.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70195407020720
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: activesupport
|
39
|
-
requirement: &
|
39
|
+
requirement: &70195407019240 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 3.1.3
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70195407019240
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: i18n
|
50
|
-
requirement: &
|
50
|
+
requirement: &70195407018060 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.6.0
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70195407018060
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: bones
|
61
|
-
requirement: &
|
61
|
+
requirement: &70195407016720 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
version: 3.7.3
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70195407016720
|
70
70
|
description: ! "This is an adapter to the kestrel messaging server for the ActiveMessaging
|
71
71
|
framework. It is \nin the early stages of development."
|
72
72
|
email: doug@dseifert.net
|