rmessage 0.1.1 → 0.1.4

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: 01d9e52b3e8082a074ff5d01c477c26ebb1000351b7b852b9e0de5755bc3fb96
4
- data.tar.gz: e46587aff7eb07d66d273d5e4540f61bfe1e36c2e5029ee1b60ac5926b91917e
3
+ metadata.gz: c69292182b658aa175401a67815c59696c47a43f4b27b7987f27fd5f7d509e64
4
+ data.tar.gz: a89eb21e1f6759e7d283184d18f0cf08c9b15cad06abe0c96b98fd9fc1d3879a
5
5
  SHA512:
6
- metadata.gz: 31c38a6a34571cede4239c56177f77ad2fe41805499b5adff88b52117c4ba4c1f081d3d7ef6b3e963adf21f096a032c9aed76942423423455481a1f977c61922
7
- data.tar.gz: 33001b0b8853432550828937bfca3ad53704d14b2a717bcff091ed857f84704494b4b5499fa264b1b42bf31841c3605e589fbe7e5750f7880c1770078b3fa896
6
+ metadata.gz: 5d6d75dce9f23ca9b114e44b10c45336e469b9afea34c3187a271ce561ac2d16fd58314f8540fa24be731decc93a3099f82a0c29fb5662a7b9dd04a1d2036e16
7
+ data.tar.gz: 2b08ff7367d060e9b1878ac2296e6c666089b236d15ea66bf92e61a4f505ac5a785965f239fed313c84efc1ffdc165dbeeded1864ac45bb28aaf7ae261736146
@@ -2,9 +2,9 @@ module RMessage
2
2
  # A Message encapsulates a JSON payload that is sent to or received from Redis.
3
3
  class Message
4
4
 
5
- # @!attribute [r] label
5
+ # @!attribute [r] type
6
6
  # @return [Symbol, String] the label.
7
- attr :label
7
+ attr :type
8
8
 
9
9
  # @!attribute [r] signature
10
10
  # @return [Integer, String] the signature.
@@ -19,34 +19,35 @@ 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)
24
- @label = opts[:label] || :UNTITLED
22
+ def initialize(opts = {})
23
+ @type = opts[:type] || :UNTITLED
25
24
  @signature = opts[:signature] || Druuid.gen
26
- @payload = data || opts[:payload]
25
+ @payload = opts[:payload] || opts
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
34
- @label ||= data[:label]
34
+ @type ||= data[:type]
35
35
  @signature ||= data[:signature]
36
36
  @payload ||= data[:payload]
37
37
  when String
38
38
  parsed = Oj.load(data)
39
- @label ||= parsed['label']
39
+ @type ||= parsed['type']
40
40
  @signature ||= parsed['signature']
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
47
48
  # @param data [Hash, String] the payload.
48
49
  def build(data = @payload)
49
- Oj.dump({ 'label' => @label, 'signature' => @signature, 'payload' => data })
50
+ Oj.dump({ 'type' => @type, 'signature' => @signature, 'payload' => data })
50
51
  end
51
52
  end
52
53
  end
@@ -15,14 +15,16 @@ module RMessage::Subscriber
15
15
  # @param auto_parse [Boolean] should messages be parsed automatically?
16
16
  # @param connection [Redis] optional argument to provide the redis connection.
17
17
  # @param connection_index [Integer] the index of the redis connection in {RMessage::CONNECTION_POOL}
18
- def setup_subscription(channel: @channel, auto_parse: false, connection: nil, connection_index: 0, &_)
18
+ def setup_subscription(channel: @channel, auto_parse: false, logger: nil, connection: nil, connection_index: 0, &_)
19
19
  redis_connection = connection || RMessage::CONNECTION_POOL[connection_index]
20
20
  redis_connection.subscribe(channel) do |event|
21
- event.subscribe { puts "Subscribed to #{channel}" }
22
- if auto_parse
23
- event.message { |_, message| parse_message(message) }
24
- else
25
- event.message { |_, message| yield(message) }
21
+ event.subscribe do
22
+ logger&.info("Subscribed to channel [channel: #{channel}]")
23
+ end
24
+
25
+ event.message do |_, message|
26
+ auto_parse ? yield(parse_message(message)) : yield(message)
27
+ logger&.info("Received Message: #{message}")
26
28
  end
27
29
  end
28
30
  end
@@ -30,9 +32,7 @@ module RMessage::Subscriber
30
32
  private
31
33
 
32
34
  def parse_message(message_data)
33
- msg = RMessage::Message.new(message_data)
34
- msg.read
35
- @events[msg.label].new(msg)
35
+ RMessage::Message.new.read(message_data)
36
36
  end
37
37
  end
38
38
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmessage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick W.
@@ -109,6 +109,7 @@ post_install_message:
109
109
  rdoc_options: []
110
110
  require_paths:
111
111
  - lib
112
+ - lib/rmessage
112
113
  required_ruby_version: !ruby/object:Gem::Requirement
113
114
  requirements:
114
115
  - - ">="