evt-messaging 0.25.0.1 → 0.25.1.0

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: 4bec9c97e78a3007e82af6b274ea77956f5626e85c0bb5707341e584c2042510
4
- data.tar.gz: fd55ca895bab4ad3097ec6e18e28f88ab0112227c3940100b20c661aacae22a5
3
+ metadata.gz: 6626108b1d40bc360d4ba83280307ad1454c0c89bc1ec253ae1a5f0e53755492
4
+ data.tar.gz: 12e06848c5210aaa07df1b5ffe7e08e6903cb3346117de5eeaa4aa88674db339
5
5
  SHA512:
6
- metadata.gz: 5664a99f79b2c7af8c0121a011210a7bfc4092dd60246719e190825cfdfdd46eec681524367a1585a18add58711cee3a67c98173f09567decf9911e65ee92178
7
- data.tar.gz: 03d72a78e06455a0b4aa47332f522c50ade3937830497ad9f10cb540d02a4230c17177950447fc25c3095df03913969d01b307cd681a1cb787fd543a7d02d225
6
+ metadata.gz: 3aa934fc38a605d89b867608852d95e52fe0305b602d05355e0e8e26776f81f4323a7faa692a143d07b3c09e5e907b5f6d50500949e1ccf86a63dc66d8ffa9b0
7
+ data.tar.gz: 89de3b229ad7b317b7cf3e3c185e5f3a599c00e9fe8ad9f53f697256ce0c35abbf5fb17f06ab9b8deead40a01b9739aba0546f299113c23f78e74675d3e63693
@@ -42,6 +42,47 @@ module Messaging
42
42
  end
43
43
  end
44
44
  end
45
+
46
+ module SessionArgument
47
+ class Example
48
+ include Messaging::Handle
49
+
50
+ attr_accessor :session
51
+
52
+ def configure(session: nil)
53
+ self.session = session
54
+ end
55
+ end
56
+
57
+ module Anomaly
58
+ module Required
59
+ class Example
60
+ include Messaging::Handle
61
+
62
+ def configure(session:)
63
+ end
64
+ end
65
+ end
66
+
67
+ module Positional
68
+ class Example
69
+ include Messaging::Handle
70
+
71
+ def configure(session)
72
+ end
73
+ end
74
+
75
+ module Optional
76
+ class Example
77
+ include Messaging::Handle
78
+
79
+ def configure(session=nil)
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
45
86
  end
46
87
  end
47
88
  end
@@ -19,18 +19,44 @@ module Messaging
19
19
  end
20
20
 
21
21
  module Build
22
- def build(strict: nil)
22
+ def build(strict: nil, session: nil)
23
23
  instance = new
24
24
  instance.strict = strict
25
25
  Log.configure(instance, attr_name: :handler_logger)
26
- instance.configure
26
+
27
+ if Build.configure_session?(instance)
28
+ instance.configure(session: session)
29
+ else
30
+ instance.configure
31
+ end
32
+
27
33
  instance
28
34
  end
35
+
36
+ def self.configure_session?(instance)
37
+ configure_method = instance.method(:configure)
38
+
39
+ parameter_type, _ = configure_method.parameters.find do |type, name|
40
+ name == :session
41
+ end
42
+
43
+ return false if parameter_type.nil?
44
+
45
+ return true if parameter_type == :key
46
+
47
+ error_message = "Optional session parameter of configure is not a keyword argument (Type: #{parameter_type.inspect})"
48
+ logger.error { error_message }
49
+ raise ArgumentError, error_message
50
+ end
51
+
52
+ def self.logger
53
+ @logger ||= Log.build(self)
54
+ end
29
55
  end
30
56
 
31
57
  module Call
32
- def call(message_or_message_data, strict: nil)
33
- instance = build(strict: strict)
58
+ def call(message_or_message_data, strict: nil, session: nil)
59
+ instance = build(strict: strict, session: session)
34
60
  instance.(message_or_message_data)
35
61
  end
36
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-messaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.0.1
4
+ version: 0.25.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-04 00:00:00.000000000 Z
11
+ date: 2018-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-message_store
@@ -44,7 +44,6 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
- - lib/loader.rb
48
47
  - lib/messaging.rb
49
48
  - lib/messaging/category.rb
50
49
  - lib/messaging/controls.rb
@@ -93,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
92
  version: '0'
94
93
  requirements: []
95
94
  rubyforge_project:
96
- rubygems_version: 2.7.3
95
+ rubygems_version: 2.7.6
97
96
  signing_key:
98
97
  specification_version: 4
99
98
  summary: Common primitives for platform-specific messaging implementations for Eventide
data/lib/loader.rb DELETED
@@ -1 +0,0 @@
1
- lib/messaging.rb