mantle 2.0.1 → 2.1.0

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: 51daa43f7ab8c8a6c1b285092b2bec67b2ebc719
4
- data.tar.gz: 8e45e8def173bd53d1ab532e76a4587d6487b304
3
+ metadata.gz: d1a6192e5973b0002ffde6dd6de2d7514f8095c7
4
+ data.tar.gz: 9c89f6117196ac08da70d79f1a09db484fc4c2c1
5
5
  SHA512:
6
- metadata.gz: 20d6e42054ffaa76766efc3e72ee186d750be5526fc5584c22d5ae5dc278166cc9370efa8e2419afcfb168a7fe112f0256dc24eea6981de881107bb0ef8cfd48
7
- data.tar.gz: 5b45d490e2c750fc56a6627aeadbebabdd1f1c8464ab286fe461e854a652f7d9e8839f0905fde09e1a11f72e2243b94156d6943f87ee22b7468bda2a580d1037
6
+ metadata.gz: b53c9dd836135be2dac641f522b2e59cdcc6496891d9c8b501efbb76cd571ca4d418accbe72c9e9985ca6114280b13d2b009f1167759a10cfd0b017fc604453f
7
+ data.tar.gz: aaa8b1e932ef8e00b0c56577a94bed9df9d4349f8f59c9a64cf9e735f1f7ddd43b7585ce9209965db8e07fe24e87cae2e9ae61aeb09a4ea0a926d29578a842d0
data/.gitignore CHANGED
@@ -16,3 +16,5 @@
16
16
 
17
17
  .DS_Store
18
18
  .idea
19
+
20
+ /pkg
data/README.md CHANGED
@@ -104,3 +104,47 @@ $ bin/sidekiq -q mantle -q default
104
104
 
105
105
  It will NOT add the `default` queue to processing if there are other queues
106
106
  enumerated using the `-q` option.
107
+
108
+ ## Testing
109
+
110
+ Requiring this library causes messages to be appended to an in-memory array.
111
+
112
+ ```Ruby
113
+ # test/test_helper.rb
114
+ require 'mantle/testing'
115
+ ```
116
+
117
+ ```Ruby
118
+ class OrderMessage
119
+ def perform(message:)
120
+ Mantle::Message.new("order:create").publish(message)
121
+ end
122
+ end
123
+ ```
124
+
125
+ ```Ruby
126
+ class OrderMessageTest < ActiveSupport::TestCase
127
+ test "sends a mantle message on created order" do
128
+ OrderMessage.new.perform(mantle_message)
129
+ assert_equal 1, Mantle.messages.size
130
+
131
+ msg = Mantle.messages.first
132
+ assert_equal "order:create", msg.channel
133
+ assert_equal mantle_message, msg.message
134
+ end
135
+
136
+ private
137
+
138
+ def mantle_message
139
+ { id: 5 }
140
+ end
141
+ end
142
+ ```
143
+
144
+ Be sure to clear out messages so they don't build up during the test suite:
145
+
146
+ ```Ruby
147
+ def teardown
148
+ Mantle.clear_all
149
+ end
150
+ ```
@@ -0,0 +1,25 @@
1
+ require 'mantle'
2
+
3
+ module Mantle
4
+ class << self
5
+ def messages
6
+ @messages ||= []
7
+ end
8
+
9
+ def clear_all
10
+ @messages = []
11
+ end
12
+ end
13
+
14
+ TestMessage = Struct.new(:channel, :message)
15
+
16
+ class Message
17
+ def initialize(channel)
18
+ @channel = channel
19
+ end
20
+
21
+ def publish(message)
22
+ Mantle.messages << TestMessage.new(channel, message)
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module Mantle
2
- VERSION = '2.0.1'
2
+ VERSION = '2.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mantle
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grant Ammons
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-24 00:00:00.000000000 Z
12
+ date: 2015-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis
@@ -101,6 +101,7 @@ files:
101
101
  - lib/mantle/message_handlers.rb
102
102
  - lib/mantle/message_router.rb
103
103
  - lib/mantle/railtie.rb
104
+ - lib/mantle/testing.rb
104
105
  - lib/mantle/version.rb
105
106
  - lib/mantle/workers/catch_up_cleanup_worker.rb
106
107
  - lib/mantle/workers/message_handler_worker.rb