rsmp 0.8.4 → 0.8.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: d6e0bddb9443fd704586251f92785f5ec4d703431d587047f8a2e835fcb48b9f
4
- data.tar.gz: 81b56b1687ad356177b6277d58f6db4ed4d3f8fa8e59aa0fc626a90fcc03bb86
3
+ metadata.gz: e12fd3ea8f7f931b3ce3269a13e8ccd1248642a89062682b0088d044732f1757
4
+ data.tar.gz: ff18134bf0e16210e30a5820f5bd2c27b5fb7f81bcf2f9f993e6c8aefe69d9d5
5
5
  SHA512:
6
- metadata.gz: d8ba189a5602f9ec1bc7f09e821231c2f5135dd163da82ffae48b9a9f62ac79ec8d4beb114e6112d41902fc1ca06ccff2a208863d00f05e51c9a83cafb68e33c
7
- data.tar.gz: 4fd8b04217edb49b3c1b929ac3d585c60194207cdb8380be7693ee00b448a28fce90cc6e55621b6cee601d773f80c6780c0d7a3a31ee8606f62f23cfce0718f8
6
+ metadata.gz: 3335d30f728748483d26e5d3d0c5671746b80dece2badc781064d0ae81f277fd7b899e9e508255a17d6f1cbd017a64164f6f0a21f1ca777b359c23b1fa482ebf
7
+ data.tar.gz: a2e457988983d9c3173f91c1269979ea6a37ce75ac5e0acc30f21fbb34d2cfab8fe81295ac43c6a6010df0f7c06e11dc9efadd01c28fc20a0e77ff6d6c580787
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.0.3
1
+ 3.1.0
data/Gemfile.lock CHANGED
@@ -1,27 +1,21 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp (0.8.4)
4
+ rsmp (0.8.5)
5
5
  async (~> 1.29.1)
6
- async-io (~> 1.32.1)
6
+ async-io (~> 1.32.2)
7
7
  colorize (~> 0.8.1)
8
8
  rsmp_schemer
9
- thor (~> 1.0.1)
9
+ thor (~> 1.2.1)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activesupport (6.1.4)
15
- concurrent-ruby (~> 1.0, >= 1.0.2)
16
- i18n (>= 1.6, < 2)
17
- minitest (>= 5.1)
18
- tzinfo (~> 2.0)
19
- zeitwerk (~> 2.3)
20
- aruba (1.1.2)
14
+ aruba (2.0.0)
21
15
  bundler (>= 1.17, < 3.0)
22
16
  childprocess (>= 2.0, < 5.0)
23
17
  contracts (>= 0.16.0, < 0.18.0)
24
- cucumber (>= 2.4, < 7.0)
18
+ cucumber (>= 4.0, < 8.0)
25
19
  rspec-expectations (~> 3.4)
26
20
  thor (~> 1.0)
27
21
  async (1.29.2)
@@ -33,68 +27,56 @@ GEM
33
27
  builder (3.2.4)
34
28
  childprocess (4.1.0)
35
29
  colorize (0.8.1)
36
- concurrent-ruby (1.1.9)
37
30
  console (1.14.0)
38
31
  fiber-local
39
32
  contracts (0.17)
40
- cucumber (6.1.0)
33
+ cucumber (7.1.0)
41
34
  builder (~> 3.2, >= 3.2.4)
42
- cucumber-core (~> 9.0, >= 9.0.1)
43
- cucumber-create-meta (~> 4.0, >= 4.0.0)
44
- cucumber-cucumber-expressions (~> 12.1, >= 12.1.1)
45
- cucumber-gherkin (~> 18.1, >= 18.1.0)
46
- cucumber-html-formatter (~> 13.0, >= 13.0.0)
47
- cucumber-messages (~> 15.0, >= 15.0.0)
48
- cucumber-wire (~> 5.0, >= 5.0.1)
35
+ cucumber-core (~> 10.1, >= 10.1.0)
36
+ cucumber-create-meta (~> 6.0, >= 6.0.1)
37
+ cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
38
+ cucumber-gherkin (~> 22.0, >= 22.0.0)
39
+ cucumber-html-formatter (~> 17.0, >= 17.0.0)
40
+ cucumber-messages (~> 17.1, >= 17.1.1)
41
+ cucumber-wire (~> 6.2, >= 6.2.0)
49
42
  diff-lcs (~> 1.4, >= 1.4.4)
50
43
  mime-types (~> 3.3, >= 3.3.1)
51
44
  multi_test (~> 0.1, >= 0.1.2)
52
45
  sys-uname (~> 1.2, >= 1.2.2)
53
- cucumber-core (9.0.1)
54
- cucumber-gherkin (~> 18.1, >= 18.1.0)
55
- cucumber-messages (~> 15.0, >= 15.0.0)
56
- cucumber-tag-expressions (~> 3.0, >= 3.0.1)
57
- cucumber-create-meta (4.0.0)
58
- cucumber-messages (~> 15.0, >= 15.0.0)
46
+ cucumber-core (10.1.1)
47
+ cucumber-gherkin (~> 22.0, >= 22.0.0)
48
+ cucumber-messages (~> 17.1, >= 17.1.1)
49
+ cucumber-tag-expressions (~> 4.1, >= 4.1.0)
50
+ cucumber-create-meta (6.0.4)
51
+ cucumber-messages (~> 17.1, >= 17.1.1)
59
52
  sys-uname (~> 1.2, >= 1.2.2)
60
- cucumber-cucumber-expressions (12.1.1)
61
- cucumber-gherkin (18.1.1)
62
- cucumber-messages (~> 15.0, >= 15.0.0)
63
- cucumber-html-formatter (13.0.0)
64
- cucumber-messages (~> 15.0, >= 15.0.0)
65
- cucumber-messages (15.0.0)
66
- protobuf-cucumber (~> 3.10, >= 3.10.8)
67
- cucumber-tag-expressions (3.0.1)
68
- cucumber-wire (5.0.1)
69
- cucumber-core (~> 9.0, >= 9.0.1)
70
- cucumber-cucumber-expressions (~> 12.1, >= 12.1.1)
71
- cucumber-messages (~> 15.0, >= 15.0.0)
72
- diff-lcs (1.4.4)
53
+ cucumber-cucumber-expressions (14.0.0)
54
+ cucumber-gherkin (22.0.0)
55
+ cucumber-messages (~> 17.1, >= 17.1.1)
56
+ cucumber-html-formatter (17.0.0)
57
+ cucumber-messages (~> 17.1, >= 17.1.0)
58
+ cucumber-messages (17.1.1)
59
+ cucumber-tag-expressions (4.1.0)
60
+ cucumber-wire (6.2.1)
61
+ cucumber-core (~> 10.1, >= 10.1.0)
62
+ cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
63
+ diff-lcs (1.5.0)
73
64
  ecma-re-validator (0.4.0)
74
65
  regexp_parser (~> 2.2)
75
- ffi (1.15.3)
66
+ ffi (1.15.5)
76
67
  fiber-local (1.0.0)
77
68
  hana (1.3.7)
78
- i18n (1.8.10)
79
- concurrent-ruby (~> 1.0)
80
69
  json_schemer (0.2.18)
81
70
  ecma-re-validator (~> 0.3)
82
71
  hana (~> 1.3)
83
72
  regexp_parser (~> 2.0)
84
73
  uri_template (~> 0.7)
85
- middleware (0.1.0)
86
- mime-types (3.3.1)
74
+ mime-types (3.4.1)
87
75
  mime-types-data (~> 3.2015)
88
- mime-types-data (3.2021.0225)
89
- minitest (5.14.4)
76
+ mime-types-data (3.2022.0105)
90
77
  multi_test (0.1.2)
91
78
  nio4r (2.5.8)
92
- protobuf-cucumber (3.10.8)
93
- activesupport (>= 3.2)
94
- middleware
95
- thor
96
- thread_safe
97
- rake (13.0.3)
79
+ rake (13.0.6)
98
80
  regexp_parser (2.2.0)
99
81
  rsmp_schemer (0.3.2)
100
82
  json_schemer (~> 0.2.18)
@@ -104,37 +86,33 @@ GEM
104
86
  rspec-mocks (~> 3.10.0)
105
87
  rspec-core (3.10.1)
106
88
  rspec-support (~> 3.10.0)
107
- rspec-expectations (3.10.1)
89
+ rspec-expectations (3.10.2)
108
90
  diff-lcs (>= 1.2.0, < 2.0)
109
91
  rspec-support (~> 3.10.0)
110
92
  rspec-mocks (3.10.2)
111
93
  diff-lcs (>= 1.2.0, < 2.0)
112
94
  rspec-support (~> 3.10.0)
113
- rspec-support (3.10.2)
95
+ rspec-support (3.10.3)
114
96
  sys-uname (1.2.2)
115
97
  ffi (~> 1.1)
116
- thor (1.0.1)
117
- thread_safe (0.3.6)
98
+ thor (1.2.1)
118
99
  timecop (0.9.4)
119
100
  timers (4.3.3)
120
- tzinfo (2.0.4)
121
- concurrent-ruby (~> 1.0)
122
101
  uri_template (0.7.0)
123
- zeitwerk (2.4.2)
124
102
 
125
103
  PLATFORMS
126
104
  x86_64-darwin-20
127
105
  x86_64-darwin-21
128
106
 
129
107
  DEPENDENCIES
130
- aruba (~> 1.1.2)
131
- bundler (~> 2.2.21)
132
- cucumber (~> 6.1.0)
133
- rake (~> 13.0.3)
108
+ aruba (~> 2.0.0)
109
+ bundler (~> 2.3.6)
110
+ cucumber (~> 7.1.0)
111
+ rake (~> 13.0.6)
134
112
  rsmp!
135
113
  rspec (~> 3.10.0)
136
- rspec-expectations (~> 3.10.1)
114
+ rspec-expectations (~> 3.10.2)
137
115
  timecop (~> 0.9.4)
138
116
 
139
117
  BUNDLED WITH
140
- 2.2.32
118
+ 2.3.6
@@ -51,12 +51,12 @@ module RSMP
51
51
  @status == :collecting
52
52
  end
53
53
 
54
- # Is collection active?
54
+ # Is collection complete?
55
55
  def ok?
56
56
  @status == :ok
57
57
  end
58
58
 
59
- # Has collection time out?
59
+ # Has collection timed out?
60
60
  def timeout?
61
61
  @status == :timeout
62
62
  end
@@ -81,6 +81,13 @@ module RSMP
81
81
  @outgoing == true
82
82
  end
83
83
 
84
+ # if an errors caused collection to abort, then raise it
85
+ # return self, so this can be tucked on to calls that return a collector
86
+ def ok!
87
+ raise @error if @error
88
+ self
89
+ end
90
+
84
91
  # Collect message
85
92
  # Will return once all messages have been collected, or timeout is reached
86
93
  def collect &block
@@ -94,9 +101,8 @@ module RSMP
94
101
  # Collect message
95
102
  # Returns the collected messages, or raise an exception in case of a time out.
96
103
  def collect! &block
97
- if collect(&block) == :timeout
98
- raise RSMP::TimeoutError.new describe_progress
99
- end
104
+ collect(&block)
105
+ ok!
100
106
  @messages
101
107
  end
102
108
 
@@ -112,6 +118,7 @@ module RSMP
112
118
  end
113
119
  @status
114
120
  rescue Async::TimeoutError
121
+ @error = RSMP::TimeoutError.new describe_progress
115
122
  @status = :timeout
116
123
  end
117
124
 
@@ -120,7 +127,7 @@ module RSMP
120
127
  # If timeout is reached, an exceptioin is raised.
121
128
  def wait!
122
129
  wait
123
- raise RSMP::TimeoutError.new(describe_progress) if timeout?
130
+ raise @error if timeout?
124
131
  @messages
125
132
  end
126
133
 
data/lib/rsmp/proxy.rb CHANGED
@@ -587,8 +587,15 @@ module RSMP
587
587
  end
588
588
 
589
589
  def send_and_optionally_collect message, options, &block
590
- if options[:collect]
591
- task = @task.async { |task| yield task }
590
+ collect_options = options[:collect] || options[:collect!]
591
+ if collect_options
592
+ task = @task.async do |task|
593
+ collector = yield collect_options # call block to create collector
594
+ collector.collect
595
+ collector.ok! if options[:collect!] # raise any errors if the bang version was specified
596
+ collector
597
+ end
598
+
592
599
  send_message message, validate: options[:validate]
593
600
  { sent: message, collector: task.wait }
594
601
  else
@@ -101,13 +101,11 @@ module RSMP
101
101
  "cId" => component,
102
102
  "mId" => m_id
103
103
  })
104
- send_and_optionally_collect message, options do |task|
105
- collector = AggregatedStatusCollector.new(
104
+ send_and_optionally_collect message, options do |collect_options|
105
+ AggregatedStatusCollector.new(
106
106
  self,
107
- options[:collect].merge(task:@task,m_id: m_id, num:1)
107
+ collect_options.merge(task:@task,m_id: m_id, num:1)
108
108
  )
109
- collector.collect
110
- collector
111
109
  end
112
110
  end
113
111
 
@@ -179,14 +177,12 @@ module RSMP
179
177
  "sS" => request_list,
180
178
  "mId" => m_id
181
179
  })
182
- send_and_optionally_collect message, options do |task|
183
- collector = StatusCollector.new(
180
+ send_and_optionally_collect message, options do |collect_options|
181
+ StatusCollector.new(
184
182
  self,
185
183
  status_list,
186
- options[:collect].merge(task:@task,m_id: m_id)
184
+ collect_options.merge(task:@task,m_id: m_id)
187
185
  )
188
- collector.collect
189
- collector
190
186
  end
191
187
  end
192
188
 
@@ -215,14 +211,12 @@ module RSMP
215
211
  "sS" => subscribe_list,
216
212
  'mId' => m_id
217
213
  })
218
- send_and_optionally_collect message, options do |task|
219
- collector = StatusCollector.new(
214
+ send_and_optionally_collect message, options do |collect_options|
215
+ StatusCollector.new(
220
216
  self,
221
217
  status_list,
222
- options[:collect].merge(task:@task,m_id: m_id)
218
+ collect_options.merge(task:@task,m_id: m_id)
223
219
  )
224
- collector.collect
225
- collector
226
220
  end
227
221
  end
228
222
 
@@ -267,14 +261,12 @@ module RSMP
267
261
  "arg" => command_list,
268
262
  "mId" => m_id
269
263
  })
270
- send_and_optionally_collect message, options do |task|
271
- collector = CommandResponseCollector.new(
264
+ send_and_optionally_collect message, options do |collect_options|
265
+ CommandResponseCollector.new(
272
266
  self,
273
267
  command_list,
274
- options[:collect].merge(task:@task,m_id: m_id)
268
+ collect_options.merge(task:@task,m_id: m_id)
275
269
  )
276
- collector.collect
277
- collector
278
270
  end
279
271
  end
280
272
 
data/lib/rsmp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.8.4"
2
+ VERSION = "0.8.5"
3
3
  end
data/rsmp.gemspec CHANGED
@@ -31,16 +31,16 @@ Gem::Specification.new do |spec|
31
31
  spec.require_paths = ["lib"]
32
32
 
33
33
  spec.add_dependency "async", "~> 1.29.1"
34
- spec.add_dependency "async-io", "~> 1.32.1"
34
+ spec.add_dependency "async-io", "~> 1.32.2"
35
35
  spec.add_dependency "colorize", "~> 0.8.1"
36
- spec.add_dependency "thor", "~> 1.0.1"
36
+ spec.add_dependency "thor", "~> 1.2.1"
37
37
  spec.add_dependency "rsmp_schemer"
38
38
 
39
- spec.add_development_dependency "bundler", "~> 2.2.21"
40
- spec.add_development_dependency "rake", "~> 13.0.3"
39
+ spec.add_development_dependency "bundler", "~> 2.3.6"
40
+ spec.add_development_dependency "rake", "~> 13.0.6"
41
41
  spec.add_development_dependency "rspec", "~> 3.10.0"
42
- spec.add_development_dependency "rspec-expectations", "~> 3.10.1"
42
+ spec.add_development_dependency "rspec-expectations", "~> 3.10.2"
43
43
  spec.add_development_dependency "timecop", "~> 0.9.4"
44
- spec.add_development_dependency "cucumber", "~> 6.1.0"
45
- spec.add_development_dependency "aruba" , "~> 1.1.2"
44
+ spec.add_development_dependency "cucumber", "~> 7.1.0"
45
+ spec.add_development_dependency "aruba" , "~> 2.0.0"
46
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Tin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-13 00:00:00.000000000 Z
11
+ date: 2022-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.32.1
33
+ version: 1.32.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.32.1
40
+ version: 1.32.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: colorize
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.1
61
+ version: 1.2.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.1
68
+ version: 1.2.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rsmp_schemer
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.2.21
89
+ version: 2.3.6
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.2.21
96
+ version: 2.3.6
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 13.0.3
103
+ version: 13.0.6
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 13.0.3
110
+ version: 13.0.6
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 3.10.1
131
+ version: 3.10.2
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 3.10.1
138
+ version: 3.10.2
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: timecop
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -156,28 +156,28 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 6.1.0
159
+ version: 7.1.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 6.1.0
166
+ version: 7.1.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: aruba
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 1.1.2
173
+ version: 2.0.0
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 1.1.2
180
+ version: 2.0.0
181
181
  description: Easy RSMP site and supervisor communication.
182
182
  email:
183
183
  - zf0f@kk.dk
@@ -269,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
269
269
  - !ruby/object:Gem::Version
270
270
  version: '0'
271
271
  requirements: []
272
- rubygems_version: 3.2.32
272
+ rubygems_version: 3.3.3
273
273
  signing_key:
274
274
  specification_version: 4
275
275
  summary: RoadSide Message Protocol (RSMP) library.