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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4bd12288bf7f6d9c776b2873356404985e009d5
4
- data.tar.gz: e228c75de6ac2b514ac79769d092500acf13481b
3
+ metadata.gz: fbd377e53c6aa832554fbcaa4770094f17b35a98
4
+ data.tar.gz: 1d691b4c2711105f558af95cc19115aadff8a621
5
5
  SHA512:
6
- metadata.gz: 7b84a8cd3ad57e80fb9165cf16336d017e294f1244cb0d98bc278d9c209c116c590ce03e8e4c69b39f53ffe5ea4000e54e579e64626246a1a4497f0b6205300f
7
- data.tar.gz: e5f2b25aa559d680d1e4521e246ed00a59328d4e3abe9a6fbfa32a437130b49f7761f5de3ed0208756425899565814e64279fee51e9a575720ecf910af84a2c0
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.2.3
1
+ 2.3.0
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gemspec
5
5
 
6
6
  gem 'activesupport', '4.1.4'
7
7
  gem 'bundler', '~> 1.6'
8
+ gem 'colored', '~> 1.2'
8
9
  gem 'rake'
9
10
  gem 'yard'
10
11
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- isimud (1.3.8)
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.3.0)
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 a message publishing and consumption gem. It consists of the following components:
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 = '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 that is intended for managing asynchronous event queues in Rails applications. It consists of the following components:
14
-
15
- * A [Bunny](http://rubybunny.info) based client interface for publishing and receiving messages using AMQP.
16
- * A test client which mocks most client operations and allows for synchronous delivery and processing of messages for unit tests.
17
- * A Model Watcher mixin for ActiveRecord that automatically sends messages whenever an ActiveRecord instance is created, modified, or destroyed.
18
- * An Event Observer mixin for registering ActiveRecord models and instances with the EventListener for receiving messages.
19
- * An Event Listener daemon process which manages queues and dispatches messages for Event Observers and other consumers.
20
- EOT
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
@@ -1,3 +1,3 @@
1
1
  module Isimud
2
- VERSION = '1.3.8'
2
+ VERSION = '1.3.9'
3
3
  end
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.8
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
- date: 2016-08-09 00:00:00.000000000 Z
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 that is intended for managing asynchronous event queues in Rails applications. It consists of the following components:
72
-
73
- * A [Bunny](http://rubybunny.info) based client interface for publishing and receiving messages using AMQP.
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.4.5.1
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