evt-messaging 0.25.0.1 → 0.25.1.0

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