euston-rabbitmq 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/Gemfile +2 -0
- data/Rakefile +0 -21
- data/euston-rabbitmq.gemspec +26 -37
- data/lib/euston-rabbitmq/{bindings → euston}/command_handler_binder.rb +2 -2
- data/lib/euston-rabbitmq/{errors.rb → euston/errors.rb} +1 -1
- data/lib/euston-rabbitmq/{bindings → euston}/event_handler_binder.rb +4 -4
- data/lib/euston-rabbitmq/{exchanges.rb → euston/exchanges.rb} +1 -1
- data/lib/euston-rabbitmq/{bindings → euston}/handler_binder.rb +2 -1
- data/lib/euston-rabbitmq/{queues.rb → euston/queues.rb} +1 -1
- data/lib/euston-rabbitmq/{subscriptions/retriable_subscription.rb → euston/retrying_subscription.rb} +17 -16
- data/lib/euston-rabbitmq/rabbitmq_client/queue.rb +70 -0
- data/lib/euston-rabbitmq/rabbitmq_client/reactive_message.rb +15 -0
- data/lib/euston-rabbitmq/{constant_loader.rb → reflection/constant_loader.rb} +0 -0
- data/lib/euston-rabbitmq/{handler_finder.rb → reflection/handler_finder.rb} +0 -0
- data/lib/euston-rabbitmq/{handler_reference.rb → reflection/handler_reference.rb} +0 -0
- data/lib/euston-rabbitmq/version.rb +1 -1
- data/lib/euston-rabbitmq.rb +8 -22
- data/spec/euston/command_handler_binder_spec.rb +24 -0
- data/spec/euston/event_handler_binder_spec.rb +36 -0
- data/spec/euston/exchanges_spec.rb +27 -0
- data/spec/euston/queues_spec.rb +24 -0
- data/spec/euston/retrying_subscription_spec.rb +74 -0
- data/spec/rabbitmq_client/queue_spec.rb +69 -0
- data/spec/{constant_loader_spec.rb → reflection/constant_loader_spec.rb} +3 -1
- data/spec/{handler_finder_spec.rb → reflection/handler_finder_spec.rb} +3 -1
- data/spec/spec_helper.rb +19 -52
- data/spec/support/filters.rb +10 -0
- data/spec/support/queue_subscription_thread_harness.rb +29 -0
- data/spec/support/rabbitmqadmin.rb +74 -0
- metadata +58 -117
- data/lib/euston-rabbitmq/command_handlers/retry_failed_message.rb +0 -29
- data/lib/euston-rabbitmq/event_handlers/message_failure.rb +0 -27
- data/lib/euston-rabbitmq/message_buffer.rb +0 -67
- data/lib/euston-rabbitmq/message_logger.rb +0 -50
- data/lib/euston-rabbitmq/queue.rb +0 -30
- data/lib/euston-rabbitmq/read_model/failed_message.rb +0 -36
- data/lib/euston-rabbitmq/read_model/message_buffer.rb +0 -57
- data/lib/euston-rabbitmq/read_model/message_log.rb +0 -37
- data/spec/command_buffer_spec.rb +0 -69
- data/spec/event_buffer_spec.rb +0 -69
- data/spec/exchange_declaration_spec.rb +0 -28
- data/spec/message_failure_spec.rb +0 -77
- data/spec/mt_safe_queue_subscription_spec.rb +0 -72
- data/spec/safe_queue_subscription_spec.rb +0 -50
- data/spec/support/factories.rb +0 -18
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: euston-rabbitmq
|
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:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-09-
|
13
|
+
date: 2011-09-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
17
|
-
requirement: &
|
17
|
+
requirement: &81151090 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,21 +22,21 @@ dependencies:
|
|
22
22
|
version: 3.0.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *81151090
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: euston
|
28
|
-
requirement: &
|
28
|
+
requirement: &81150800 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.
|
33
|
+
version: 1.0.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *81150800
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: euston-eventstore
|
39
|
-
requirement: &
|
39
|
+
requirement: &81150430 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.0.0
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *81150430
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: hash-keys
|
50
|
-
requirement: &
|
50
|
+
requirement: &81150040 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 1.0.0
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *81150040
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: hollywood
|
61
|
-
requirement: &
|
61
|
+
requirement: &81149590 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,98 +66,54 @@ dependencies:
|
|
66
66
|
version: 1.0.0
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *81149590
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
-
requirement: &
|
71
|
+
name: i18n
|
72
|
+
requirement: &81149160 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 0.6.0
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *81149160
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
|
-
name:
|
83
|
-
requirement: &
|
84
|
-
none: false
|
85
|
-
requirements:
|
86
|
-
- - ~>
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: 0.5.2
|
89
|
-
type: :runtime
|
90
|
-
prerelease: false
|
91
|
-
version_requirements: *79358710
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
name: safely
|
94
|
-
requirement: &79358290 !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
|
-
requirements:
|
97
|
-
- - ~>
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: 0.3.0
|
100
|
-
type: :runtime
|
101
|
-
prerelease: false
|
102
|
-
version_requirements: *79358290
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: amqp
|
105
|
-
requirement: &79357840 !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.8.0
|
111
|
-
type: :runtime
|
112
|
-
prerelease: false
|
113
|
-
version_requirements: *79357840
|
114
|
-
- !ruby/object:Gem::Dependency
|
115
|
-
name: bson_ext
|
116
|
-
requirement: &79357520 !ruby/object:Gem::Requirement
|
82
|
+
name: require_all
|
83
|
+
requirement: &81148290 !ruby/object:Gem::Requirement
|
117
84
|
none: false
|
118
85
|
requirements:
|
119
86
|
- - ~>
|
120
87
|
- !ruby/object:Gem::Version
|
121
|
-
version: 1.
|
88
|
+
version: 1.2.0
|
122
89
|
type: :runtime
|
123
90
|
prerelease: false
|
124
|
-
version_requirements: *
|
91
|
+
version_requirements: *81148290
|
125
92
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
127
|
-
requirement: &
|
93
|
+
name: robustthread
|
94
|
+
requirement: &81147590 !ruby/object:Gem::Requirement
|
128
95
|
none: false
|
129
96
|
requirements:
|
130
97
|
- - ~>
|
131
98
|
- !ruby/object:Gem::Version
|
132
|
-
version: 0.
|
99
|
+
version: 0.5.2
|
133
100
|
type: :runtime
|
134
101
|
prerelease: false
|
135
|
-
version_requirements: *
|
102
|
+
version_requirements: *81147590
|
136
103
|
- !ruby/object:Gem::Dependency
|
137
|
-
name:
|
138
|
-
requirement: &
|
104
|
+
name: safely
|
105
|
+
requirement: &81145710 !ruby/object:Gem::Requirement
|
139
106
|
none: false
|
140
107
|
requirements:
|
141
108
|
- - ~>
|
142
109
|
- !ruby/object:Gem::Version
|
143
|
-
version:
|
110
|
+
version: 0.3.0
|
144
111
|
type: :runtime
|
145
112
|
prerelease: false
|
146
|
-
version_requirements: *
|
147
|
-
- !ruby/object:Gem::Dependency
|
148
|
-
name: evented-spec
|
149
|
-
requirement: &79356660 !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
|
-
requirements:
|
152
|
-
- - ~>
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
version: 0.9.0
|
155
|
-
type: :development
|
156
|
-
prerelease: false
|
157
|
-
version_requirements: *79356660
|
113
|
+
version_requirements: *81145710
|
158
114
|
- !ruby/object:Gem::Dependency
|
159
115
|
name: awesome_print
|
160
|
-
requirement: &
|
116
|
+
requirement: &81145150 !ruby/object:Gem::Requirement
|
161
117
|
none: false
|
162
118
|
requirements:
|
163
119
|
- - ~>
|
@@ -165,21 +121,10 @@ dependencies:
|
|
165
121
|
version: 0.4.0
|
166
122
|
type: :development
|
167
123
|
prerelease: false
|
168
|
-
version_requirements: *
|
169
|
-
- !ruby/object:Gem::Dependency
|
170
|
-
name: faker
|
171
|
-
requirement: &79355980 !ruby/object:Gem::Requirement
|
172
|
-
none: false
|
173
|
-
requirements:
|
174
|
-
- - ~>
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: 1.0.0
|
177
|
-
type: :development
|
178
|
-
prerelease: false
|
179
|
-
version_requirements: *79355980
|
124
|
+
version_requirements: *81145150
|
180
125
|
- !ruby/object:Gem::Dependency
|
181
126
|
name: fuubar
|
182
|
-
requirement: &
|
127
|
+
requirement: &81144320 !ruby/object:Gem::Requirement
|
183
128
|
none: false
|
184
129
|
requirements:
|
185
130
|
- - ~>
|
@@ -187,10 +132,10 @@ dependencies:
|
|
187
132
|
version: 0.0.0
|
188
133
|
type: :development
|
189
134
|
prerelease: false
|
190
|
-
version_requirements: *
|
135
|
+
version_requirements: *81144320
|
191
136
|
- !ruby/object:Gem::Dependency
|
192
137
|
name: rspec
|
193
|
-
requirement: &
|
138
|
+
requirement: &81143950 !ruby/object:Gem::Requirement
|
194
139
|
none: false
|
195
140
|
requirements:
|
196
141
|
- - ~>
|
@@ -198,7 +143,7 @@ dependencies:
|
|
198
143
|
version: 2.6.0
|
199
144
|
type: :development
|
200
145
|
prerelease: false
|
201
|
-
version_requirements: *
|
146
|
+
version_requirements: *81143950
|
202
147
|
description: JRuby RabbitMq bindings
|
203
148
|
email:
|
204
149
|
- lee.m.henson@gmail.com
|
@@ -211,35 +156,31 @@ files:
|
|
211
156
|
- Rakefile
|
212
157
|
- euston-rabbitmq.gemspec
|
213
158
|
- lib/euston-rabbitmq.rb
|
214
|
-
- lib/euston-rabbitmq/
|
215
|
-
- lib/euston-rabbitmq/
|
216
|
-
- lib/euston-rabbitmq/
|
217
|
-
- lib/euston-rabbitmq/
|
218
|
-
- lib/euston-rabbitmq/
|
219
|
-
- lib/euston-rabbitmq/
|
220
|
-
- lib/euston-rabbitmq/
|
221
|
-
- lib/euston-rabbitmq/
|
222
|
-
- lib/euston-rabbitmq/
|
223
|
-
- lib/euston-rabbitmq/
|
224
|
-
- lib/euston-rabbitmq/
|
225
|
-
- lib/euston-rabbitmq/
|
226
|
-
- lib/euston-rabbitmq/queue.rb
|
227
|
-
- lib/euston-rabbitmq/queues.rb
|
228
|
-
- lib/euston-rabbitmq/read_model/failed_message.rb
|
229
|
-
- lib/euston-rabbitmq/read_model/message_buffer.rb
|
230
|
-
- lib/euston-rabbitmq/read_model/message_log.rb
|
231
|
-
- lib/euston-rabbitmq/subscriptions/retriable_subscription.rb
|
159
|
+
- lib/euston-rabbitmq/euston/command_handler_binder.rb
|
160
|
+
- lib/euston-rabbitmq/euston/errors.rb
|
161
|
+
- lib/euston-rabbitmq/euston/event_handler_binder.rb
|
162
|
+
- lib/euston-rabbitmq/euston/exchanges.rb
|
163
|
+
- lib/euston-rabbitmq/euston/handler_binder.rb
|
164
|
+
- lib/euston-rabbitmq/euston/queues.rb
|
165
|
+
- lib/euston-rabbitmq/euston/retrying_subscription.rb
|
166
|
+
- lib/euston-rabbitmq/rabbitmq_client/queue.rb
|
167
|
+
- lib/euston-rabbitmq/rabbitmq_client/reactive_message.rb
|
168
|
+
- lib/euston-rabbitmq/reflection/constant_loader.rb
|
169
|
+
- lib/euston-rabbitmq/reflection/handler_finder.rb
|
170
|
+
- lib/euston-rabbitmq/reflection/handler_reference.rb
|
232
171
|
- lib/euston-rabbitmq/version.rb
|
233
|
-
- spec/
|
234
|
-
- spec/
|
235
|
-
- spec/
|
236
|
-
- spec/
|
237
|
-
- spec/
|
238
|
-
- spec/
|
239
|
-
- spec/
|
240
|
-
- spec/
|
172
|
+
- spec/euston/command_handler_binder_spec.rb
|
173
|
+
- spec/euston/event_handler_binder_spec.rb
|
174
|
+
- spec/euston/exchanges_spec.rb
|
175
|
+
- spec/euston/queues_spec.rb
|
176
|
+
- spec/euston/retrying_subscription_spec.rb
|
177
|
+
- spec/rabbitmq_client/queue_spec.rb
|
178
|
+
- spec/reflection/constant_loader_spec.rb
|
179
|
+
- spec/reflection/handler_finder_spec.rb
|
241
180
|
- spec/spec_helper.rb
|
242
|
-
- spec/support/
|
181
|
+
- spec/support/filters.rb
|
182
|
+
- spec/support/queue_subscription_thread_harness.rb
|
183
|
+
- spec/support/rabbitmqadmin.rb
|
243
184
|
homepage: http://github.com/leemhenson/euston-rabbitmq
|
244
185
|
licenses: []
|
245
186
|
post_install_message:
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Euston
|
2
|
-
module RabbitMq
|
3
|
-
module CommandHandlers
|
4
|
-
class RetryFailedMessage
|
5
|
-
include Euston::CommandHandler
|
6
|
-
|
7
|
-
version 1 do |headers, command|
|
8
|
-
model = Euston::RabbitMq::ReadModel::FailedMessage.new
|
9
|
-
message = model.get_by_id command[:id]
|
10
|
-
|
11
|
-
unless message.nil?
|
12
|
-
routing_key = message['routing_key']
|
13
|
-
exchange = routing_key.split('.').first
|
14
|
-
|
15
|
-
headers = message['headers'].merge(:id => command[:id],
|
16
|
-
:type => message['type'],
|
17
|
-
:version => message['version'] )
|
18
|
-
|
19
|
-
buffer = Euston::RabbitMq::MessageBuffer.send("#{exchange}_buffer")
|
20
|
-
buffer.push :headers => headers,
|
21
|
-
:body => message['body']
|
22
|
-
|
23
|
-
model.remove_by_id command[:id]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Euston
|
2
|
-
module RabbitMq
|
3
|
-
module EventHandlers
|
4
|
-
class MessageFailure
|
5
|
-
include Euston::EventHandler
|
6
|
-
|
7
|
-
consumes :message_failed, 1 do |headers, event|
|
8
|
-
headers = event[:message][:headers].dup
|
9
|
-
failure = { :message_id => headers.delete(:id),
|
10
|
-
:type => headers.delete(:type),
|
11
|
-
:version => headers.delete(:version),
|
12
|
-
:message_timestamp => headers.delete(:timestamp),
|
13
|
-
:routing_key => event[:routing_key],
|
14
|
-
:body => event[:message][:body],
|
15
|
-
:headers => headers,
|
16
|
-
:error => event[:error],
|
17
|
-
:backtrace => event[:backtrace],
|
18
|
-
:failure_timestamp => Time.now.to_f }
|
19
|
-
|
20
|
-
model = Euston::RabbitMq::ReadModel::FailedMessage
|
21
|
-
model = model.new
|
22
|
-
model.log_failure failure
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
module Euston
|
2
|
-
module RabbitMq
|
3
|
-
class MessageBuffer
|
4
|
-
class << self
|
5
|
-
def commands_buffer channel = nil
|
6
|
-
@command_buffers ||= MessageBuffer.new channel, :commands
|
7
|
-
end
|
8
|
-
|
9
|
-
def events_buffer channel = nil
|
10
|
-
@event_buffers ||= MessageBuffer.new channel, :events
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
include Euston::RabbitMq::Exchanges
|
15
|
-
include Euston::RabbitMq::Queues
|
16
|
-
include Hollywood
|
17
|
-
|
18
|
-
def initialize channel, exchange_name
|
19
|
-
@channel = channel
|
20
|
-
@exchange = get_exchange channel, exchange_name
|
21
|
-
@read_model = Euston::RabbitMq::ReadModel::MessageBuffer.send exchange_name
|
22
|
-
|
23
|
-
@queue = get_queue channel, "#{exchange_name}_buffer"
|
24
|
-
@queue.bind @exchange, :routing_key => "#{exchange_name}.#"
|
25
|
-
|
26
|
-
@queue.when(:message_decode_failed => method(:log_failure),
|
27
|
-
:message_failed => method(:handle_failure),
|
28
|
-
:message_received => method(:remove_message_from_buffer))
|
29
|
-
|
30
|
-
@queue.safe_subscribe
|
31
|
-
end
|
32
|
-
|
33
|
-
def handle_failure(message, error, header)
|
34
|
-
log_failure message, error
|
35
|
-
header.ack
|
36
|
-
end
|
37
|
-
|
38
|
-
def dispatch_due_messages
|
39
|
-
dispatched = false
|
40
|
-
|
41
|
-
@read_model.find_due_messages.to_a.each do |message|
|
42
|
-
@read_model.set_next_attempt message
|
43
|
-
@exchange.publish message['json'], default_publish_options.merge(:routing_key => "#{@exchange.name}.#{message['type']}")
|
44
|
-
dispatched = true
|
45
|
-
end
|
46
|
-
|
47
|
-
callback(:no_messages_were_due) unless dispatched
|
48
|
-
end
|
49
|
-
|
50
|
-
def log_failure message, error
|
51
|
-
text = "A buffer queue subscription failed. [Error] #{error.message} [Payload] #{message}"
|
52
|
-
err = Euston::RabbitMq::MessageDecodeFailedError.new text
|
53
|
-
err.set_backtrace error.backtrace
|
54
|
-
|
55
|
-
Safely.report! err
|
56
|
-
end
|
57
|
-
|
58
|
-
def push message
|
59
|
-
@read_model.buffer_new_message message
|
60
|
-
end
|
61
|
-
|
62
|
-
def remove_message_from_buffer message
|
63
|
-
@read_model.remove_published_message message[:headers][:id]
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
module Euston
|
2
|
-
module RabbitMq
|
3
|
-
class MessageLogger
|
4
|
-
class << self
|
5
|
-
def commands_logger channel = nil
|
6
|
-
@command_logger ||= MessageLogger.new channel, :commands
|
7
|
-
end
|
8
|
-
|
9
|
-
def events_logger channel = nil
|
10
|
-
@event_logger ||= MessageLogger.new channel, :events
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
include Euston::RabbitMq::Exchanges
|
15
|
-
include Euston::RabbitMq::Queues
|
16
|
-
|
17
|
-
def initialize channel, exchange_name
|
18
|
-
@channel = channel
|
19
|
-
@exchange = get_exchange channel, exchange_name
|
20
|
-
@read_model = Euston::RabbitMq::ReadModel::MessageLog.send exchange_name
|
21
|
-
|
22
|
-
@queue = get_queue channel, "#{exchange_name}_log"
|
23
|
-
@queue.bind @exchange, :routing_key => "#{exchange_name}.#"
|
24
|
-
|
25
|
-
@queue.when(:message_decode_failed => method(:log_failure),
|
26
|
-
:message_failed => method(:handle_failure),
|
27
|
-
:message_received => method(:write_message_to_log))
|
28
|
-
|
29
|
-
@queue.safe_subscribe
|
30
|
-
end
|
31
|
-
|
32
|
-
def handle_failure(message, error, header)
|
33
|
-
log_failure message, error
|
34
|
-
header.ack
|
35
|
-
end
|
36
|
-
|
37
|
-
def log_failure message, error
|
38
|
-
text = "A log queue subscription failed. [Error] #{error.message} [Payload] #{message}"
|
39
|
-
err = Euston::RabbitMq::MessageDecodeFailedError.new text
|
40
|
-
err.set_backtrace error.backtrace
|
41
|
-
|
42
|
-
Safely.report! err
|
43
|
-
end
|
44
|
-
|
45
|
-
def write_message_to_log message
|
46
|
-
@read_model.log_new_message message
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|