rmessage 0.1.0 → 0.1.3

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