isimud 1.3.8 → 1.3.9
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.ruby-version +1 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +4 -2
- data/README.md +10 -5
- data/certs/gfeil.pem +21 -0
- data/checksum/isimud-1.3.8.gem.sha512 +1 -0
- data/isimud.gemspec +14 -16
- data/lib/isimud/event_listener.rb +6 -6
- data/lib/isimud/version.rb +1 -1
- data/release +30 -0
- metadata +32 -11
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fbd377e53c6aa832554fbcaa4770094f17b35a98
|
|
4
|
+
data.tar.gz: 1d691b4c2711105f558af95cc19115aadff8a621
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b8b812abc5bbf09afea8d6c79dee53521aca81a97e1df007f18eaeb2d5189d7bc64978d6e9ebc97dc66639b1cd081c95cf2044364a056151f014e95c95ffc3f4
|
|
7
|
+
data.tar.gz: 4c4a173be7017d1458f6d491d6e9bdb040d22a4e80ceeaa0ce347451165865aaf03609aae45db0fb9ca0af1689fe4bde5170cb17ae1f4ee3c37f966023f4d160
|
checksums.yaml.gz.sig
ADDED
|
Binary file
|
data.tar.gz.sig
ADDED
|
Binary file
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.3.0
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
isimud (1.3.
|
|
4
|
+
isimud (1.3.9)
|
|
5
5
|
activerecord (>= 4.1.4)
|
|
6
6
|
activesupport (>= 4.1.4)
|
|
7
7
|
bunny (>= 1.6.0)
|
|
@@ -36,12 +36,13 @@ GEM
|
|
|
36
36
|
arel (5.0.1.20140414130214)
|
|
37
37
|
awesome_print (1.6.1)
|
|
38
38
|
builder (3.2.2)
|
|
39
|
-
bunny (2.
|
|
39
|
+
bunny (2.5.1)
|
|
40
40
|
amq-protocol (>= 2.0.1)
|
|
41
41
|
chronic_duration (0.10.6)
|
|
42
42
|
numerizer (~> 0.1.1)
|
|
43
43
|
codeclimate-test-reporter (0.4.8)
|
|
44
44
|
simplecov (>= 0.7.1, < 1.0.0)
|
|
45
|
+
colored (1.2)
|
|
45
46
|
combustion (0.5.3)
|
|
46
47
|
activesupport (>= 3.0.0)
|
|
47
48
|
railties (>= 3.0.0)
|
|
@@ -99,6 +100,7 @@ DEPENDENCIES
|
|
|
99
100
|
awesome_print
|
|
100
101
|
bundler (~> 1.6)
|
|
101
102
|
codeclimate-test-reporter
|
|
103
|
+
colored (~> 1.2)
|
|
102
104
|
combustion
|
|
103
105
|
database_cleaner
|
|
104
106
|
isimud!
|
data/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
[](https://badge.fury.io/rb/isimud)
|
|
2
|
+
|
|
1
3
|
# Isimud: AMQP based Messaging and Event Processing Abstraction Component.
|
|
2
4
|
|
|
3
5
|
>Isimud is a minor god, the messenger of the god Enki in Sumerian mythology.
|
|
@@ -5,13 +7,13 @@
|
|
|
5
7
|
>
|
|
6
8
|
>*Source: Wikipedia*
|
|
7
9
|
|
|
8
|
-
Isimud is
|
|
10
|
+
Isimud is an AMQP message publishing and consumption gem intended for Rails applications. It includes the following components:
|
|
9
11
|
|
|
10
12
|
* A [Bunny](http://rubybunny.info) based client interface for publishing and receiving messages using AMQP.
|
|
11
|
-
* A test client which mocks most client operations and allows for synchronous delivery and processing of messages for unit tests.
|
|
12
13
|
* A Model Watcher mixin for ActiveRecord that automatically sends messages whenever an ActiveRecord instance is created, modified, or destroyed.
|
|
13
14
|
* An Event Observer mixin for registering ActiveRecord models and instances with the EventListener for receiving messages.
|
|
14
15
|
* An Event Listener daemon process which manages queues and dispatches messages for Event Observers.
|
|
16
|
+
* A test client for mocking message publication, allowing synchronous delivery and processing of messages in unit tests.
|
|
15
17
|
|
|
16
18
|
## Installation
|
|
17
19
|
|
|
@@ -77,6 +79,12 @@ if they do not exist.
|
|
|
77
79
|
|
|
78
80
|
## Changes
|
|
79
81
|
|
|
82
|
+
### 1.3.9
|
|
83
|
+
|
|
84
|
+
* EventListener changes:
|
|
85
|
+
* start_event_thread, dump exception backtrace to log
|
|
86
|
+
* set log level to info or higher for all event thread messages
|
|
87
|
+
|
|
80
88
|
### 1.3.8
|
|
81
89
|
|
|
82
90
|
* In EventListener event thread, rescue all exceptions, not just Bunny ones.
|
|
@@ -152,9 +160,6 @@ if they do not exist.
|
|
|
152
160
|
|
|
153
161
|
* TestClient::Queue now responds to bind() and unbind() in the same manner as Bunny::Queue.
|
|
154
162
|
* BunnyClient#create_queue now may be called without a block to instantiate an AMQP queue without subscribing to messages
|
|
155
|
-
|
|
156
|
-
### 0.6.0 (broken)
|
|
157
|
-
|
|
158
163
|
* Added Client#rebind to change the exchange and routing keys for a durable named queue.
|
|
159
164
|
* Changed BunnyClient#delete_queue to make it more reliable.
|
|
160
165
|
* EventListener now uses a shared, durable queue for monitoring events on modified EventObserver instances.
|
data/certs/gfeil.pem
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMRQwEgYDVQQDDAtnZW9y
|
|
3
|
+
Z2UuZmVpbDEUMBIGCgmSJomT8ixkARkWBGtlYXMxEzARBgoJkiaJk/IsZAEZFgNj
|
|
4
|
+
b20wHhcNMTYwODA5MjEwNDU1WhcNMTcwODA5MjEwNDU1WjBBMRQwEgYDVQQDDAtn
|
|
5
|
+
ZW9yZ2UuZmVpbDEUMBIGCgmSJomT8ixkARkWBGtlYXMxEzARBgoJkiaJk/IsZAEZ
|
|
6
|
+
FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDFBKCoLQgCUv1
|
|
7
|
+
86ykJOCtnWhQ12Eymfnu5btV3DKMMLxjUDG18vy1Clhw04afp36Rc+oMvP1VxYeH
|
|
8
|
+
lRWdLtnWy2DAu2dxeFlWvacAegDcmQSw9vfyS7yD8zoLhJGeIflJ3eenTa+nRiQ2
|
|
9
|
+
DBPL1qRdfSrBNBXVlTYvs/PGE0SLJPtil8oRsifqk7ETPCUx5gRSxzzp0JykjrUd
|
|
10
|
+
cIu2u06Dv5GyDVwJu5/m4wLJSc2Bmore7rmOctBSNYtXTcMGVQOfskhncLNeE56V
|
|
11
|
+
R7byYxJ92HQt4svMjbK0hN+27asFpXaVU9ZeNQeEOOsgq8ecdypAWjwlOaH580K5
|
|
12
|
+
aH24zkstAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
|
13
|
+
BBSXpvM46ec2Ds6ErCpZkXFZtsEh7TAfBgNVHREEGDAWgRRnZW9yZ2UuZmVpbEBr
|
|
14
|
+
ZWFzLmNvbTAfBgNVHRIEGDAWgRRnZW9yZ2UuZmVpbEBrZWFzLmNvbTANBgkqhkiG
|
|
15
|
+
9w0BAQUFAAOCAQEAEXuMNAP35/nzBGj5aodPKIgH2Bvda9IF8OC4sDmQsRsUQzDw
|
|
16
|
+
wRi3rWoNzUU+QexdZqhLXSwGuPNgMgmPKaOu09LjpKKbem9VDicUEhNDL27CYMJZ
|
|
17
|
+
1oO1kEqjbZW60HZcfDNrw8Q6ARBRhKXpPJsbYrR2QRzx1P0oVkFtmc9Qu4gvFy3c
|
|
18
|
+
hIevyUPfcaBRWNfXCQnyFXZcHqcTywEgNyXTJZ6zUNZSHIQPzLOyzqa+muVO8Ob/
|
|
19
|
+
wSKk31gq6KY7rgi11mcLvVzwSuwZFqnonAmu/uin3cbXcOUkqNsyzZ0LQLXNKiwi
|
|
20
|
+
k0RgrsSNtQ8hcsVSQla0Ot+X3WpFI4ZuIfSLFA==
|
|
21
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4f5cec5d97f7da4caf13058d338a48eeeb44e56f72b20444d7d577a9c84ebfde99420b0f99ba7b587e9ff092382f760a32b55367c76e037769fc1b1bd6e0e8e6
|
data/isimud.gemspec
CHANGED
|
@@ -4,22 +4,20 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
|
4
4
|
require 'isimud/version'
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name
|
|
8
|
-
spec.version
|
|
9
|
-
spec.authors
|
|
10
|
-
spec.email
|
|
11
|
-
spec.summary
|
|
12
|
-
spec.description
|
|
13
|
-
Isimud is an AMQP message publishing and consumption gem
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
spec.homepage = 'https://github.com/KeasInc/isimud'
|
|
22
|
-
spec.license = 'MITNFA'
|
|
7
|
+
spec.name = 'isimud'
|
|
8
|
+
spec.version = Isimud::VERSION
|
|
9
|
+
spec.authors = ['George Feil', 'Brian Jenkins']
|
|
10
|
+
spec.email = %w{george.feil@keas.com bonkydog@bonkydog.com}
|
|
11
|
+
spec.summary = %q{AMQP Messaging and Event Processing}
|
|
12
|
+
spec.description = <<-EOT
|
|
13
|
+
Isimud is an AMQP message publishing and consumption gem intended for Rails applications. You can use it to define
|
|
14
|
+
message consumption queues for ActiveRecord instances, or synchronize model updates between processes. It also provides
|
|
15
|
+
an event listener background process for managing queues that consume messages.
|
|
16
|
+
EOT
|
|
17
|
+
spec.homepage = 'https://github.com/KeasInc/isimud'
|
|
18
|
+
spec.license = 'MITNFA'
|
|
19
|
+
spec.cert_chain = ['certs/gfeil.pem']
|
|
20
|
+
spec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
|
|
23
21
|
|
|
24
22
|
spec.files = `git ls-files -z`.split("\x0")
|
|
25
23
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
@@ -84,8 +84,8 @@ module Isimud
|
|
|
84
84
|
@events_exchange = options[:events_exchange]
|
|
85
85
|
@models_exchange = options[:models_exchange]
|
|
86
86
|
@name = options[:name]
|
|
87
|
-
@observer_mutex = Mutex.new
|
|
88
|
-
@error_counter_mutex = Mutex.new
|
|
87
|
+
@observer_mutex = Thread::Mutex.new
|
|
88
|
+
@error_counter_mutex = Thread::Mutex.new
|
|
89
89
|
@status = STATUS_INITIALIZE
|
|
90
90
|
end
|
|
91
91
|
|
|
@@ -171,16 +171,16 @@ module Isimud
|
|
|
171
171
|
|
|
172
172
|
def start_event_thread
|
|
173
173
|
Thread.new do
|
|
174
|
-
log 'EventListener: starting event_thread'
|
|
174
|
+
log 'EventListener: starting event_thread', :info
|
|
175
175
|
until shutdown? do
|
|
176
176
|
begin
|
|
177
177
|
bind_queues
|
|
178
|
-
log 'EventListener: event_thread finished'
|
|
178
|
+
log 'EventListener: event_thread bind_queues finished', :info
|
|
179
179
|
@status = STATUS_RUNNING
|
|
180
180
|
Thread.stop
|
|
181
181
|
rescue => e
|
|
182
|
+
log "EventListener: error in event thread: #{e.message}\n #{e.backtrace.join("\n ")}", :warn
|
|
182
183
|
count_error(e)
|
|
183
|
-
log 'EventListener: resetting queues', :warn
|
|
184
184
|
@observer_queue = nil
|
|
185
185
|
client.reset
|
|
186
186
|
end
|
|
@@ -201,7 +201,7 @@ module Isimud
|
|
|
201
201
|
end
|
|
202
202
|
|
|
203
203
|
def start_error_counter_thread
|
|
204
|
-
log 'EventListener: starting error counter'
|
|
204
|
+
log 'EventListener: starting error counter', :info
|
|
205
205
|
@error_count = 0
|
|
206
206
|
Thread.new do
|
|
207
207
|
while true
|
data/lib/isimud/version.rb
CHANGED
data/release
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'colored'
|
|
4
|
+
require 'digest/sha2'
|
|
5
|
+
require File.expand_path('lib/isimud/version.rb')
|
|
6
|
+
|
|
7
|
+
def run!(command)
|
|
8
|
+
puts "running #{command}".yellow
|
|
9
|
+
system(command) || abort("Command #{command} failed, terminating!")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
gem_name = 'isimud'
|
|
13
|
+
gem_version = "#{gem_name}-#{Isimud::VERSION}.gem"
|
|
14
|
+
built_gem_path = "pkg/#{gem_version}"
|
|
15
|
+
puts "Building #{gem_name} version #{Isimud::VERSION}".cyan
|
|
16
|
+
run! "gem build #{gem_name}.gemspec"
|
|
17
|
+
run! "mv #{gem_version} #{built_gem_path}"
|
|
18
|
+
|
|
19
|
+
puts 'Adding and committing checksum'.cyan
|
|
20
|
+
checksum = Digest::SHA512.new.hexdigest(File.read(built_gem_path))
|
|
21
|
+
checksum_path = "checksum/#{gem_name}-#{Isimud::VERSION}.gem.sha512"
|
|
22
|
+
File.open(checksum_path, 'w') { |f| f.write(checksum) }
|
|
23
|
+
run! "git add #{checksum_path}"
|
|
24
|
+
run! "git commit -m 'added checksum for #{gem_version}' && git push origin"
|
|
25
|
+
|
|
26
|
+
puts 'Publishing to RubyGems'.cyan
|
|
27
|
+
run! "gem push #{built_gem_path}"
|
|
28
|
+
|
|
29
|
+
puts 'Testing install'.cyan
|
|
30
|
+
run! "gem install #{gem_name} -v #{Isimud::VERSION} -P MediumSecurity"
|
metadata
CHANGED
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: isimud
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- George Feil
|
|
8
8
|
- Brian Jenkins
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
|
-
cert_chain:
|
|
12
|
-
|
|
11
|
+
cert_chain:
|
|
12
|
+
- |
|
|
13
|
+
-----BEGIN CERTIFICATE-----
|
|
14
|
+
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMRQwEgYDVQQDDAtnZW9y
|
|
15
|
+
Z2UuZmVpbDEUMBIGCgmSJomT8ixkARkWBGtlYXMxEzARBgoJkiaJk/IsZAEZFgNj
|
|
16
|
+
b20wHhcNMTYwODA5MjEwNDU1WhcNMTcwODA5MjEwNDU1WjBBMRQwEgYDVQQDDAtn
|
|
17
|
+
ZW9yZ2UuZmVpbDEUMBIGCgmSJomT8ixkARkWBGtlYXMxEzARBgoJkiaJk/IsZAEZ
|
|
18
|
+
FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDFBKCoLQgCUv1
|
|
19
|
+
86ykJOCtnWhQ12Eymfnu5btV3DKMMLxjUDG18vy1Clhw04afp36Rc+oMvP1VxYeH
|
|
20
|
+
lRWdLtnWy2DAu2dxeFlWvacAegDcmQSw9vfyS7yD8zoLhJGeIflJ3eenTa+nRiQ2
|
|
21
|
+
DBPL1qRdfSrBNBXVlTYvs/PGE0SLJPtil8oRsifqk7ETPCUx5gRSxzzp0JykjrUd
|
|
22
|
+
cIu2u06Dv5GyDVwJu5/m4wLJSc2Bmore7rmOctBSNYtXTcMGVQOfskhncLNeE56V
|
|
23
|
+
R7byYxJ92HQt4svMjbK0hN+27asFpXaVU9ZeNQeEOOsgq8ecdypAWjwlOaH580K5
|
|
24
|
+
aH24zkstAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
|
25
|
+
BBSXpvM46ec2Ds6ErCpZkXFZtsEh7TAfBgNVHREEGDAWgRRnZW9yZ2UuZmVpbEBr
|
|
26
|
+
ZWFzLmNvbTAfBgNVHRIEGDAWgRRnZW9yZ2UuZmVpbEBrZWFzLmNvbTANBgkqhkiG
|
|
27
|
+
9w0BAQUFAAOCAQEAEXuMNAP35/nzBGj5aodPKIgH2Bvda9IF8OC4sDmQsRsUQzDw
|
|
28
|
+
wRi3rWoNzUU+QexdZqhLXSwGuPNgMgmPKaOu09LjpKKbem9VDicUEhNDL27CYMJZ
|
|
29
|
+
1oO1kEqjbZW60HZcfDNrw8Q6ARBRhKXpPJsbYrR2QRzx1P0oVkFtmc9Qu4gvFy3c
|
|
30
|
+
hIevyUPfcaBRWNfXCQnyFXZcHqcTywEgNyXTJZ6zUNZSHIQPzLOyzqa+muVO8Ob/
|
|
31
|
+
wSKk31gq6KY7rgi11mcLvVzwSuwZFqnonAmu/uin3cbXcOUkqNsyzZ0LQLXNKiwi
|
|
32
|
+
k0RgrsSNtQ8hcsVSQla0Ot+X3WpFI4ZuIfSLFA==
|
|
33
|
+
-----END CERTIFICATE-----
|
|
34
|
+
date: 2016-09-14 00:00:00.000000000 Z
|
|
13
35
|
dependencies:
|
|
14
36
|
- !ruby/object:Gem::Dependency
|
|
15
37
|
name: activerecord
|
|
@@ -68,13 +90,9 @@ dependencies:
|
|
|
68
90
|
- !ruby/object:Gem::Version
|
|
69
91
|
version: 0.10.6
|
|
70
92
|
description: |
|
|
71
|
-
Isimud is an AMQP message publishing and consumption gem
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* A test client which mocks most client operations and allows for synchronous delivery and processing of messages for unit tests.
|
|
75
|
-
* A Model Watcher mixin for ActiveRecord that automatically sends messages whenever an ActiveRecord instance is created, modified, or destroyed.
|
|
76
|
-
* An Event Observer mixin for registering ActiveRecord models and instances with the EventListener for receiving messages.
|
|
77
|
-
* An Event Listener daemon process which manages queues and dispatches messages for Event Observers and other consumers.
|
|
93
|
+
Isimud is an AMQP message publishing and consumption gem intended for Rails applications. You can use it to define
|
|
94
|
+
message consumption queues for ActiveRecord instances, or synchronize model updates between processes. It also provides
|
|
95
|
+
an event listener background process for managing queues that consume messages.
|
|
78
96
|
email:
|
|
79
97
|
- george.feil@keas.com
|
|
80
98
|
- bonkydog@bonkydog.com
|
|
@@ -94,6 +112,8 @@ files:
|
|
|
94
112
|
- LICENSE.txt
|
|
95
113
|
- README.md
|
|
96
114
|
- Rakefile
|
|
115
|
+
- certs/gfeil.pem
|
|
116
|
+
- checksum/isimud-1.3.8.gem.sha512
|
|
97
117
|
- config.ru
|
|
98
118
|
- config/tddium.yml
|
|
99
119
|
- doc/Isimud.html
|
|
@@ -144,6 +164,7 @@ files:
|
|
|
144
164
|
- lib/rails/generators/isimud/initializer_generator.rb
|
|
145
165
|
- lib/rails/generators/isimud/templates/initializer.rb
|
|
146
166
|
- lib/rails/generators/isimud/templates/isimud.yml
|
|
167
|
+
- release
|
|
147
168
|
- spec/internal/app/models/admin.rb
|
|
148
169
|
- spec/internal/app/models/company.rb
|
|
149
170
|
- spec/internal/app/models/user.rb
|
|
@@ -181,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
181
202
|
version: '0'
|
|
182
203
|
requirements: []
|
|
183
204
|
rubyforge_project:
|
|
184
|
-
rubygems_version: 2.
|
|
205
|
+
rubygems_version: 2.5.1
|
|
185
206
|
signing_key:
|
|
186
207
|
specification_version: 4
|
|
187
208
|
summary: AMQP Messaging and Event Processing
|
metadata.gz.sig
ADDED
|
Binary file
|