rmessage 0.1.2 → 0.1.5

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: f771b5b481689023a94dec959210999ef38cd0e043b7d32b60f2cf66e45f7f6c
4
- data.tar.gz: b05c425ee17726307234565fc174c07485b551fe7560db3a8df33a93f82a34f8
3
+ metadata.gz: 79600cc96aeee7a3ab6fc3f3f70e0993846069948749a7357042883b500ab6d1
4
+ data.tar.gz: 95d2eb5e92f60a90b3d9f2a476f09c47ab169f011a975a02b01239abc5ec313a
5
5
  SHA512:
6
- metadata.gz: 29a45abc74618f7c559da04ca0728fbc5979c211510185f311acf6178621e32bdd984d1e8d93c317c263a953aef00726c40c7dab6837959144d786af7fe7d383
7
- data.tar.gz: ffd9e32788dcf26e1647f9846ee9122f1b83e497b69e5c81abc996ce2c431db49449848415aacf20e8c763cf6793f54fdaed6287928f51afa7b058410ee64cfe
6
+ metadata.gz: 84fbd03fdc2203f20e0c8ac2f076e20db5434c606ce6d7e0c4260d1917ffa40e9036a0a3b77ed08cb1cad0af513cd722689129b6b4e62a30566fcc0cc76a7cf8
7
+ data.tar.gz: a8c91c22cdc8c12c5537aaf7e2afb0addd282fa5c67af4db68b3354bcac13bb5c304eb2bfa36d88ab86e5d9ebb8b08b5643d86eee5a1905011eff9a2b83dd145
@@ -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.
@@ -15,38 +15,39 @@ module RMessage
15
15
  attr :payload
16
16
 
17
17
  # Constructs a new Message
18
- # @param opts [Hash] message options
19
- # * label [Symbol, String] the Message label
18
+ # @param opts [Hash, String] message options
19
+ # * type [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
+ read(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]
35
- @signature ||= data[:signature]
36
- @payload ||= data[:payload]
34
+ @type = data[:type]
35
+ @signature = data[:signature]
36
+ @payload ||= data[:payload] || data
37
37
  when String
38
38
  parsed = Oj.load(data)
39
- @label ||= parsed['label']
40
- @signature ||= parsed['signature']
41
- @payload ||= parsed['payload']
39
+ @type = parsed['type']
40
+ @signature = parsed['signature']
41
+ @payload ||= parsed['payload'] || parsed
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
@@ -23,7 +23,7 @@ module RMessage::Subscriber
23
23
  end
24
24
 
25
25
  event.message do |_, message|
26
- auto_parse ? parse_message(message) : yield(message)
26
+ auto_parse ? yield(parse_message(message)) : yield(message)
27
27
  logger&.info("Received Message: #{message}")
28
28
  end
29
29
  end
@@ -32,9 +32,7 @@ module RMessage::Subscriber
32
32
  private
33
33
 
34
34
  def parse_message(message_data)
35
- msg = RMessage::Message.new(message_data)
36
- msg.read
37
- @events[msg.label].new(msg)
35
+ RMessage::Message.new.read(message_data)
38
36
  end
39
37
  end
40
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.2
4
+ version: 0.1.5
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
  - - ">="