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 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