isimud 1.3.8 → 1.3.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/isimud.svg)](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
|