mantle 2.0.1 → 2.1.0

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