rmessage 0.1.0 → 0.1.3

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
  SHA256:
3
- metadata.gz: 027c26a46e85945a595e17f63f468b7db4bbc5445e62337e72aba85136ebd089
4
- data.tar.gz: 5059e66328f264c26c20d42ab152dc4d1486b02f7990a87dec54560f94455def
3
+ metadata.gz: a49ac884778c35479a6f9bd22cdf223aac6d02ef586d61c41cd16b1278c4be97
4
+ data.tar.gz: d2d69bc681472e741c9eaec10dab3903c2014488030c8fae76d05908c14b4eb7
5
5
  SHA512:
6
- metadata.gz: a7a1371e9e285c7f8313478f8ee7ecdce68d90b411922ed321d634781122a375534278439bfa02c175bfd1448212f08008339ada3b73e23306d27554e56cde21
7
- data.tar.gz: ffdc5a57b6e9d5a99f9f22536478c45287076cc03a1fa2ac6ce25778f90b8b9e3f3ea316632a7d771c995f6c97e912ab479f4181010c2ee696513b3d415718b7
6
+ metadata.gz: 9c35501badb73bf98833fb58703167cae86ce0ceccee81e3e416b7f9a76e63f4173f19307e12bacd8c1e4e3eb173f39ce2b6965ab433c8cf97ec44b632d87c5a
7
+ data.tar.gz: 8dc719f163a85322f28b0cb10674113ab0993e1983429999c71d0f3057a017d47979719a781a9c4962bbe0faddd732376c107cdf42f1bd2e024cd6ba694a800c
@@ -19,15 +19,15 @@ module RMessage
19
19
  # * label [Symbol, String] the Message label
20
20
  # * signature [Integer, String] the Message signature
21
21
  # * payload [Hash, String] the Message data
22
- # @param data [Hash, String] message data
23
- def initialize(opts = {}, data = nil)
22
+ def initialize(opts = {})
24
23
  @label = opts[:label] || :UNTITLED
25
24
  @signature = opts[:signature] || Druuid.gen
26
- @payload = data || opts[:payload]
25
+ @payload = opts[:payload] || {}
27
26
  end
28
27
 
29
28
  # Read and parse data. Defaults to the Message#payload.
30
29
  # @param data [Hash, String] the data.
30
+ # @return [RMessage::Message]
31
31
  def read(data = @payload)
32
32
  case data
33
33
  when Hash
@@ -41,6 +41,7 @@ module RMessage
41
41
  @payload ||= parsed['payload']
42
42
  else raise TypeError, 'Invalid type for Message#payload'
43
43
  end
44
+ self
44
45
  end
45
46
 
46
47
  # Build a JSON string using data in this message
@@ -10,7 +10,8 @@ module RMessage::Publisher
10
10
  # @param message [RMessage::Message] the message
11
11
  # @param channel [String, Integer, Symbol] the channel
12
12
  # @param connection_index [Integer] the index of the connection to Redis within the {RMessage::CONNECTION_POOL}
13
- def publish(message, channel: @channel, connection_index: 0)
14
- RMessage::CONNECTION_POOL[connection_index].publish(channel, message.build)
13
+ def publish(message, channel: @channel, connection: nil, connection_index: 0)
14
+ redis_connection = connection || RMessage::CONNECTION_POOL[connection_index]
15
+ redis_connection.publish(channel, message.build)
15
16
  end
16
17
  end
@@ -13,17 +13,18 @@ module RMessage::Subscriber
13
13
  # Setup a subscription to a specific Redis channel
14
14
  # @param channel [Symbol, String, Integer] the channel
15
15
  # @param auto_parse [Boolean] should messages be parsed automatically?
16
+ # @param connection [Redis] optional argument to provide the redis connection.
16
17
  # @param connection_index [Integer] the index of the redis connection in {RMessage::CONNECTION_POOL}
17
- def setup_subscription(channel: @channel, auto_parse: false, connection_index: 0, &_)
18
- RMessage::CONNECTION_POOL[connection_index].subscribe(channel) do |event|
18
+ def setup_subscription(channel: @channel, auto_parse: false, logger: nil, connection: nil, connection_index: 0, &_)
19
+ redis_connection = connection || RMessage::CONNECTION_POOL[connection_index]
20
+ redis_connection.subscribe(channel) do |event|
19
21
  event.subscribe do
20
- puts "Subscribed to #{channel}"
22
+ logger&.info("Subscribed to channel [channel: #{channel}]")
21
23
  end
22
24
 
23
- if auto_parse
24
- event.message { |_, message| parse_message(message) }
25
- else
26
- event.message { |_, message| yield(message) }
25
+ event.message do |_, message|
26
+ auto_parse ? yield(parse_message(message)) : yield(message)
27
+ logger&.info("Received Message: #{message}")
27
28
  end
28
29
  end
29
30
  end
@@ -31,9 +32,7 @@ module RMessage::Subscriber
31
32
  private
32
33
 
33
34
  def parse_message(message_data)
34
- msg = RMessage::Message.new(message_data)
35
- msg.read
36
- @events[msg.label].new(msg)
35
+ RMessage::Message.new(message_data).read
37
36
  end
38
37
  end
39
38
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmessage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick W.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-11 00:00:00.000000000 Z
11
+ date: 2022-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv