announce 0.2.1 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a15f3dd4b262c764d345c0c2cdc9a25a99ec2f96
4
- data.tar.gz: 18ba68588930ddb7f81505a0cf4007084a43009b
3
+ metadata.gz: 657b17523c88c350d69e1b1de4393ff2b3d0c803
4
+ data.tar.gz: 9a2bb7fc21061b94e0af76a82129faba9e28e0a6
5
5
  SHA512:
6
- metadata.gz: 730f6ed1fd833d3242cc5d9c3ad868cac3919553b1e79a7317fdfa0b5ebbd38d6c368925c8143b6e0e411f026549565d56e3e19ededecbec49b9b7c6959d2e2d
7
- data.tar.gz: 5d0d5ad56873ca643a32f4eb0cfdd816e8f47cfe650baee06844751ca2631f0a1919d0559dbdd2f73b57507349cb95d00e34b96b3876ff8c4a1d8252e050f716
6
+ metadata.gz: 513d312adeeb87a82e89edff4f8ad19849a5303a451655f040aca03e06e2631c2210f3992ef05c94b5b206d28d0803037bd09ed82e025b3435d936fa7283a3f4
7
+ data.tar.gz: 037d43cabac0a80227d75289dfc3d80886d6ded53c45ab7255f4476a67ef707d98db4a0694eaa6a7cb3e3f5ec4dc4ec54499ef8a5695353e1ed712d80e840da8
data/README.md CHANGED
@@ -32,7 +32,7 @@ end
32
32
  ```
33
33
 
34
34
  When building a Ruby app or service to receive messages, subscribe a job class to announcements like this:
35
- ```
35
+ ```ruby
36
36
  require 'announce'
37
37
 
38
38
  class SomeCreateJob < ActiveJob::Base
@@ -223,7 +223,7 @@ Announce.announce(:story, :publish, id: story.id, {})
223
223
  ```
224
224
 
225
225
  There is also a module you can include to get `publish` and `announce` methods:
226
- ```
226
+ ```ruby
227
227
  class SomeController
228
228
  include Announce::Publisher
229
229
 
@@ -247,7 +247,7 @@ Unlike other job libraries which specify the Ruby `Class` for processing as part
247
247
 
248
248
  To designate that a Ruby class will process a message, you must include the `Announce:Subscriber` module and call `subscribe_to` class method.
249
249
 
250
- ```
250
+ ```ruby
251
251
  require 'announce'
252
252
 
253
253
  class SomeCreateJob < ActiveJob::Base
@@ -264,7 +264,7 @@ end
264
264
  This works because the `Announce::Subscriber` adds the `subscribe_to` class method, but also a default `perform(*args)` instance method that delegates message handling to a job instance method named `"receive_#{subject}_#{action}"`.
265
265
 
266
266
  This default `perform` method only passes the message `body` to `receive_subject_action` methods. The `subject`, but `action` and full `message` object are made available as instance properties of the subscriber.
267
- ```
267
+ ```ruby
268
268
  require 'announce'
269
269
 
270
270
  class SomeCreateJob < ActiveJob::Base
@@ -302,6 +302,42 @@ For `shoryuken`, `subscribe_to` registers the worker for the appropriate queue,
302
302
 
303
303
  ## Development
304
304
 
305
+ ### Testing with Announce
306
+
307
+ There is an Announce::Testing module which provides helper methods useful in your tests.
308
+ To use them add the following lines into your test/spec helper:
309
+ ```ruby
310
+ # use the testing helper
311
+ require 'announce/testing'
312
+
313
+ # include the methods - could also include in your base test class
314
+ include Announce::Testing
315
+
316
+ # this resets announce to use test settings, and clears messages
317
+ reset_announce
318
+
319
+ ```
320
+
321
+ Then you can use the following methods in your test class:
322
+
323
+ `published_messages` - returns the array of published messages
324
+
325
+ `last_message` - returns the last message published to announce
326
+
327
+ `clear_messages` - clears all published messages
328
+
329
+ `subscriptions` - returns the array of all subscriptions
330
+
331
+ `last_subscription` - returns most recently added subscription
332
+
333
+ `clear_subscriptions` - clears all subscriptions
334
+
335
+ `broker_configured?` - returns whether or not the broker has been configured
336
+
337
+ `reset_broker_config` - resets broker
338
+
339
+ `reset_announce` - resets announce to use test adapter, prefix, app, and logging to `/dev/null`
340
+
305
341
  ### Developing an Adapter Class
306
342
 
307
343
  Adapter classes should be named with the following module structure: `Announce::Adapters::SomeBrokerAdapter`
@@ -0,0 +1,47 @@
1
+ require 'announce'
2
+ require 'announce/adapters/test_adapter'
3
+
4
+ module Announce
5
+ module Testing
6
+
7
+ def published_messages
8
+ Announce::Adapters::TestAdapter::Topic.published_messages
9
+ end
10
+
11
+ def last_message
12
+ published_messages.last
13
+ end
14
+
15
+ def clear_messages
16
+ published_messages.clear
17
+ end
18
+
19
+ def subscriptions
20
+ Announce::Adapters::TestAdapter::Subscriber.subscriptions
21
+ end
22
+
23
+ def last_subscription
24
+ subscriptions.last
25
+ end
26
+
27
+ def clear_subscriptions
28
+ subscriptions.clear
29
+ end
30
+
31
+ def broker_configured?
32
+ Announce::Adapters::TestAdapter::BrokerManager.configured?
33
+ end
34
+
35
+ def reset_broker_config
36
+ Announce::Adapters::TestAdapter::BrokerManager.reset
37
+ end
38
+
39
+ def reset_announce
40
+ Announce.logger = Logger.new('/dev/null')
41
+ Announce.options[:adapter] = 'test'
42
+ Announce.options[:queue_name_prefix] = 'test'
43
+ Announce.options[:app_name] = 'app'
44
+ clear_messages
45
+ end
46
+ end
47
+ end
@@ -1,3 +1,3 @@
1
1
  module Announce
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: announce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kuklewicz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-21 00:00:00.000000000 Z
11
+ date: 2015-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shoryuken
@@ -181,6 +181,7 @@ files:
181
181
  - lib/announce/publisher.rb
182
182
  - lib/announce/railtie.rb
183
183
  - lib/announce/subscriber.rb
184
+ - lib/announce/testing.rb
184
185
  - lib/announce/version.rb
185
186
  - lib/tasks/announce.rake
186
187
  homepage: https://github.com/PRX/announce