rsmp 0.37.0 → 0.38.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 +4 -4
- data/.devcontainer/devcontainer.json +22 -0
- data/.github/workflows/rubocop.yaml +17 -0
- data/.gitignore +5 -6
- data/.rubocop.yml +80 -0
- data/Gemfile +13 -1
- data/Gemfile.lock +34 -1
- data/Rakefile +3 -3
- data/lib/rsmp/cli.rb +147 -124
- data/lib/rsmp/collect/ack_collector.rb +8 -7
- data/lib/rsmp/collect/aggregated_status_collector.rb +4 -4
- data/lib/rsmp/collect/alarm_collector.rb +31 -23
- data/lib/rsmp/collect/alarm_matcher.rb +3 -3
- data/lib/rsmp/collect/collector/logging.rb +17 -0
- data/lib/rsmp/collect/collector/reporting.rb +44 -0
- data/lib/rsmp/collect/collector/status.rb +34 -0
- data/lib/rsmp/collect/collector.rb +69 -150
- data/lib/rsmp/collect/command_matcher.rb +19 -6
- data/lib/rsmp/collect/command_response_collector.rb +7 -7
- data/lib/rsmp/collect/distributor.rb +14 -11
- data/lib/rsmp/collect/filter.rb +31 -15
- data/lib/rsmp/collect/matcher.rb +7 -11
- data/lib/rsmp/collect/queue.rb +4 -4
- data/lib/rsmp/collect/receiver.rb +10 -12
- data/lib/rsmp/collect/state_collector.rb +116 -77
- data/lib/rsmp/collect/status_collector.rb +6 -6
- data/lib/rsmp/collect/status_matcher.rb +17 -7
- data/lib/rsmp/{alarm_state.rb → component/alarm_state.rb} +76 -37
- data/lib/rsmp/{component.rb → component/component.rb} +15 -15
- data/lib/rsmp/component/component_base.rb +89 -0
- data/lib/rsmp/component/component_proxy.rb +75 -0
- data/lib/rsmp/component/components.rb +63 -0
- data/lib/rsmp/convert/export/json_schema.rb +116 -110
- data/lib/rsmp/convert/import/yaml.rb +21 -18
- data/lib/rsmp/{rsmp.rb → helpers/clock.rb} +5 -6
- data/lib/rsmp/{deep_merge.rb → helpers/deep_merge.rb} +2 -1
- data/lib/rsmp/helpers/error.rb +71 -0
- data/lib/rsmp/{inspect.rb → helpers/inspect.rb} +6 -10
- data/lib/rsmp/log/archive.rb +98 -0
- data/lib/rsmp/log/colorization.rb +41 -0
- data/lib/rsmp/log/filtering.rb +54 -0
- data/lib/rsmp/log/logger.rb +206 -0
- data/lib/rsmp/{logging.rb → log/logging.rb} +5 -7
- data/lib/rsmp/message.rb +159 -148
- data/lib/rsmp/{node.rb → node/node.rb} +19 -17
- data/lib/rsmp/{protocol.rb → node/protocol.rb} +5 -3
- data/lib/rsmp/node/site/site.rb +195 -0
- data/lib/rsmp/node/supervisor/modules/configuration.rb +59 -0
- data/lib/rsmp/node/supervisor/modules/connection.rb +140 -0
- data/lib/rsmp/node/supervisor/modules/sites.rb +64 -0
- data/lib/rsmp/node/supervisor/supervisor.rb +72 -0
- data/lib/rsmp/{task.rb → node/task.rb} +12 -14
- data/lib/rsmp/proxy/modules/acknowledgements.rb +144 -0
- data/lib/rsmp/proxy/modules/receive.rb +119 -0
- data/lib/rsmp/proxy/modules/send.rb +76 -0
- data/lib/rsmp/proxy/modules/state.rb +25 -0
- data/lib/rsmp/proxy/modules/tasks.rb +105 -0
- data/lib/rsmp/proxy/modules/versions.rb +69 -0
- data/lib/rsmp/proxy/modules/watchdogs.rb +66 -0
- data/lib/rsmp/proxy/proxy.rb +199 -0
- data/lib/rsmp/proxy/site/modules/aggregated_status.rb +52 -0
- data/lib/rsmp/proxy/site/modules/alarms.rb +27 -0
- data/lib/rsmp/proxy/site/modules/commands.rb +31 -0
- data/lib/rsmp/proxy/site/modules/status.rb +110 -0
- data/lib/rsmp/proxy/site/site_proxy.rb +205 -0
- data/lib/rsmp/proxy/supervisor/modules/aggregated_status.rb +47 -0
- data/lib/rsmp/proxy/supervisor/modules/alarms.rb +73 -0
- data/lib/rsmp/proxy/supervisor/modules/commands.rb +53 -0
- data/lib/rsmp/proxy/supervisor/modules/status.rb +204 -0
- data/lib/rsmp/proxy/supervisor/supervisor_proxy.rb +178 -0
- data/lib/rsmp/tlc/detector_logic.rb +18 -34
- data/lib/rsmp/tlc/input_states.rb +126 -0
- data/lib/rsmp/tlc/modules/detector_logics.rb +50 -0
- data/lib/rsmp/tlc/modules/display.rb +78 -0
- data/lib/rsmp/tlc/modules/helpers.rb +41 -0
- data/lib/rsmp/tlc/modules/inputs.rb +173 -0
- data/lib/rsmp/tlc/modules/modes.rb +253 -0
- data/lib/rsmp/tlc/modules/outputs.rb +30 -0
- data/lib/rsmp/tlc/modules/plans.rb +218 -0
- data/lib/rsmp/tlc/modules/signal_groups.rb +109 -0
- data/lib/rsmp/tlc/modules/startup_sequence.rb +22 -0
- data/lib/rsmp/tlc/modules/system.rb +140 -0
- data/lib/rsmp/tlc/modules/traffic_data.rb +49 -0
- data/lib/rsmp/tlc/signal_group.rb +37 -41
- data/lib/rsmp/tlc/signal_plan.rb +14 -11
- data/lib/rsmp/tlc/signal_priority.rb +39 -35
- data/lib/rsmp/tlc/startup_sequence.rb +59 -0
- data/lib/rsmp/tlc/traffic_controller.rb +38 -1010
- data/lib/rsmp/tlc/traffic_controller_site.rb +58 -57
- data/lib/rsmp/version.rb +1 -1
- data/lib/rsmp.rb +82 -48
- data/rsmp.gemspec +24 -31
- metadata +79 -139
- data/lib/rsmp/archive.rb +0 -76
- data/lib/rsmp/collect/message_matchers.rb +0 -0
- data/lib/rsmp/component_base.rb +0 -87
- data/lib/rsmp/component_proxy.rb +0 -57
- data/lib/rsmp/components.rb +0 -65
- data/lib/rsmp/error.rb +0 -71
- data/lib/rsmp/logger.rb +0 -216
- data/lib/rsmp/proxy.rb +0 -693
- data/lib/rsmp/site.rb +0 -188
- data/lib/rsmp/site_proxy.rb +0 -389
- data/lib/rsmp/supervisor.rb +0 -302
- data/lib/rsmp/supervisor_proxy.rb +0 -510
- data/lib/rsmp/tlc/inputs.rb +0 -134
|
@@ -4,24 +4,24 @@ module RSMP
|
|
|
4
4
|
class TrafficControllerSite < Site
|
|
5
5
|
attr_accessor :main, :signal_plans
|
|
6
6
|
|
|
7
|
-
def initialize
|
|
7
|
+
def initialize(options = {})
|
|
8
8
|
# setup options before calling super initializer,
|
|
9
9
|
# since build of components depend on options
|
|
10
10
|
@sxl = 'traffic_light_controller'
|
|
11
11
|
@security_codes = options[:site_settings]['security_codes']
|
|
12
|
-
@interval = options[:site_settings].dig('intervals','timer') || 1
|
|
12
|
+
@interval = options[:site_settings].dig('intervals', 'timer') || 1
|
|
13
13
|
@startup_sequence = options[:site_settings]['startup_sequence'] || 'efg'
|
|
14
|
-
build_plans options[:site_settings]
|
|
14
|
+
build_plans options[:site_settings]['signal_plans']
|
|
15
15
|
|
|
16
|
-
super
|
|
16
|
+
super
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
return if main
|
|
19
|
+
|
|
20
|
+
raise ConfigurationError, 'TLC must have a main component'
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def site_type_name
|
|
24
|
-
|
|
24
|
+
'TLC'
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def start
|
|
@@ -35,35 +35,36 @@ module RSMP
|
|
|
35
35
|
super
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
def build_plans
|
|
38
|
+
def build_plans(signal_plans)
|
|
39
39
|
@signal_plans = {}
|
|
40
40
|
return unless signal_plans
|
|
41
|
-
|
|
41
|
+
|
|
42
|
+
signal_plans.each_pair do |id, settings|
|
|
42
43
|
states = nil
|
|
43
|
-
bands = nil
|
|
44
44
|
cycle_time = settings['cycle_time']
|
|
45
45
|
states = settings['states'] if settings
|
|
46
46
|
dynamic_bands = settings['dynamic_bands'] if settings
|
|
47
47
|
|
|
48
|
-
@signal_plans[id.to_i] =
|
|
48
|
+
@signal_plans[id.to_i] =
|
|
49
|
+
SignalPlan.new(number: id.to_i, cycle_time: cycle_time, states: states, dynamic_bands: dynamic_bands)
|
|
49
50
|
end
|
|
50
51
|
end
|
|
51
52
|
|
|
52
|
-
def get_plan
|
|
53
|
+
def get_plan(_group_id, _plan_nr)
|
|
53
54
|
'NN1BB1'
|
|
54
55
|
end
|
|
55
56
|
|
|
56
|
-
def build_component
|
|
57
|
-
|
|
57
|
+
def build_component(id:, type:, settings: {})
|
|
58
|
+
case type
|
|
58
59
|
when 'main'
|
|
59
60
|
TrafficController.new node: self,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
id: id,
|
|
62
|
+
ntsoid: settings['ntsOId'],
|
|
63
|
+
xnid: settings['xNId'],
|
|
64
|
+
startup_sequence: @startup_sequence,
|
|
65
|
+
signal_plans: @signal_plans,
|
|
66
|
+
live_output: @site_settings['live_output'],
|
|
67
|
+
inputs: @site_settings['inputs']
|
|
67
68
|
when 'signal_group'
|
|
68
69
|
group = SignalGroup.new node: self, id: id
|
|
69
70
|
main.add_signal_group group
|
|
@@ -76,62 +77,62 @@ module RSMP
|
|
|
76
77
|
end
|
|
77
78
|
|
|
78
79
|
def start_tlc_timer
|
|
79
|
-
task_name =
|
|
80
|
+
task_name = 'tlc timer'
|
|
80
81
|
log "Starting #{task_name} with interval #{@interval} seconds", level: :debug
|
|
81
82
|
|
|
82
83
|
@timer = @task.async do |task|
|
|
83
|
-
|
|
84
|
+
task.annotate task_name
|
|
84
85
|
run_tlc_timer task
|
|
85
86
|
end
|
|
86
87
|
end
|
|
87
88
|
|
|
88
|
-
def run_tlc_timer
|
|
89
|
+
def run_tlc_timer(task)
|
|
89
90
|
next_time = Time.now.to_f
|
|
90
91
|
loop do
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
task.sleep duration
|
|
107
|
-
end
|
|
92
|
+
timer(@clock.now)
|
|
93
|
+
rescue StandardError => e
|
|
94
|
+
distribute_error e, level: :internal
|
|
95
|
+
ensure
|
|
96
|
+
# adjust sleep duration to avoid drift. so wake up always happens on the
|
|
97
|
+
# same fractional second.
|
|
98
|
+
# note that Time.now is not monotonic. If the clock is changed,
|
|
99
|
+
# either manaully or via NTP, the sleep interval might jump.
|
|
100
|
+
# an alternative is to use ::Process.clock_gettime(::Process::CLOCK_MONOTONIC),
|
|
101
|
+
# to get the current time. this ensures a constant interval, but
|
|
102
|
+
# if the clock is changed, the wake up would then happen on a different
|
|
103
|
+
# fractional second
|
|
104
|
+
next_time += @interval
|
|
105
|
+
duration = next_time - Time.now.to_f
|
|
106
|
+
task.sleep duration
|
|
108
107
|
end
|
|
109
108
|
end
|
|
110
109
|
|
|
111
110
|
def stop_tlc_timer
|
|
112
111
|
return unless @timer
|
|
112
|
+
|
|
113
113
|
@timer.stop
|
|
114
114
|
@timer = nil
|
|
115
115
|
end
|
|
116
116
|
|
|
117
|
-
def timer
|
|
117
|
+
def timer(now)
|
|
118
118
|
return unless main
|
|
119
|
+
|
|
119
120
|
main.timer now
|
|
120
121
|
end
|
|
121
122
|
|
|
122
|
-
def verify_security_code
|
|
123
|
-
raise ArgumentError
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
def verify_security_code(level, code)
|
|
124
|
+
raise ArgumentError, "Level must be 1-2, got #{level}" unless (1..2).include?(level)
|
|
125
|
+
return unless @security_codes[level] != code
|
|
126
|
+
|
|
127
|
+
raise MessageRejected, "Wrong security code for level #{level}"
|
|
127
128
|
end
|
|
128
129
|
|
|
129
|
-
def change_security_code
|
|
130
|
+
def change_security_code(level, old_code, new_code)
|
|
130
131
|
verify_security_code level, old_code
|
|
131
132
|
@security_codes[level] = new_code
|
|
132
133
|
end
|
|
133
134
|
|
|
134
|
-
def self.to_rmsp_bool
|
|
135
|
+
def self.to_rmsp_bool(bool)
|
|
135
136
|
if bool
|
|
136
137
|
'True'
|
|
137
138
|
else
|
|
@@ -139,26 +140,26 @@ module RSMP
|
|
|
139
140
|
end
|
|
140
141
|
end
|
|
141
142
|
|
|
142
|
-
def self.from_rsmp_bool
|
|
143
|
+
def self.from_rsmp_bool?(str)
|
|
143
144
|
str == 'True'
|
|
144
145
|
end
|
|
145
146
|
|
|
146
|
-
def self.make_status
|
|
147
|
+
def self.make_status(value, quality = 'recent')
|
|
147
148
|
case value
|
|
148
149
|
when true, false
|
|
149
|
-
|
|
150
|
+
[to_rmsp_bool(value), quality]
|
|
150
151
|
else
|
|
151
|
-
|
|
152
|
+
[value, quality]
|
|
152
153
|
end
|
|
153
154
|
end
|
|
154
155
|
|
|
155
|
-
def do_deferred
|
|
156
|
+
def do_deferred(key, _item = nil)
|
|
156
157
|
case key
|
|
157
158
|
when :restart
|
|
158
|
-
log
|
|
159
|
+
log 'Restarting TLC', level: :info
|
|
159
160
|
restart
|
|
160
161
|
end
|
|
161
162
|
end
|
|
162
163
|
end
|
|
163
164
|
end
|
|
164
|
-
end
|
|
165
|
+
end
|
data/lib/rsmp/version.rb
CHANGED
data/lib/rsmp.rb
CHANGED
|
@@ -10,52 +10,86 @@ require 'json'
|
|
|
10
10
|
require 'securerandom'
|
|
11
11
|
require 'json_schemer'
|
|
12
12
|
require 'async/queue'
|
|
13
|
+
require 'rsmp_schema'
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
15
|
+
require_relative 'rsmp/helpers/clock'
|
|
16
|
+
require_relative 'rsmp/helpers/deep_merge'
|
|
17
|
+
require_relative 'rsmp/helpers/error'
|
|
18
|
+
require_relative 'rsmp/helpers/inspect'
|
|
19
|
+
require_relative 'rsmp/log/logging'
|
|
20
|
+
require_relative 'rsmp/log/archive'
|
|
21
|
+
require_relative 'rsmp/log/filtering'
|
|
22
|
+
require_relative 'rsmp/log/colorization'
|
|
23
|
+
require_relative 'rsmp/log/logger'
|
|
24
|
+
require_relative 'rsmp/message'
|
|
25
|
+
require_relative 'rsmp/component/components'
|
|
26
|
+
require_relative 'rsmp/component/alarm_state'
|
|
27
|
+
require_relative 'rsmp/component/component_base'
|
|
28
|
+
require_relative 'rsmp/component/component'
|
|
29
|
+
require_relative 'rsmp/component/component_proxy'
|
|
30
|
+
require_relative 'rsmp/collect/distributor'
|
|
31
|
+
require_relative 'rsmp/collect/receiver'
|
|
32
|
+
require_relative 'rsmp/collect/queue'
|
|
33
|
+
require_relative 'rsmp/collect/collector/status'
|
|
34
|
+
require_relative 'rsmp/collect/collector/reporting'
|
|
35
|
+
require_relative 'rsmp/collect/collector/logging'
|
|
36
|
+
require_relative 'rsmp/collect/collector'
|
|
37
|
+
require_relative 'rsmp/collect/state_collector'
|
|
38
|
+
require_relative 'rsmp/collect/filter'
|
|
39
|
+
require_relative 'rsmp/collect/matcher'
|
|
40
|
+
require_relative 'rsmp/collect/status_matcher'
|
|
41
|
+
require_relative 'rsmp/collect/command_matcher'
|
|
42
|
+
require_relative 'rsmp/collect/alarm_matcher'
|
|
43
|
+
require_relative 'rsmp/collect/status_collector'
|
|
44
|
+
require_relative 'rsmp/collect/command_response_collector'
|
|
45
|
+
require_relative 'rsmp/collect/aggregated_status_collector'
|
|
46
|
+
require_relative 'rsmp/collect/alarm_collector'
|
|
47
|
+
require_relative 'rsmp/collect/ack_collector'
|
|
48
|
+
require_relative 'rsmp/node/protocol'
|
|
49
|
+
require_relative 'rsmp/node/task'
|
|
50
|
+
require_relative 'rsmp/node/node'
|
|
51
|
+
require_relative 'rsmp/node/site/site'
|
|
52
|
+
require_relative 'rsmp/node/supervisor/modules/configuration'
|
|
53
|
+
require_relative 'rsmp/node/supervisor/modules/connection'
|
|
54
|
+
require_relative 'rsmp/node/supervisor/modules/sites'
|
|
55
|
+
require_relative 'rsmp/node/supervisor/supervisor'
|
|
56
|
+
require_relative 'rsmp/proxy/modules/state'
|
|
57
|
+
require_relative 'rsmp/proxy/modules/watchdogs'
|
|
58
|
+
require_relative 'rsmp/proxy/modules/acknowledgements'
|
|
59
|
+
require_relative 'rsmp/proxy/modules/send'
|
|
60
|
+
require_relative 'rsmp/proxy/modules/receive'
|
|
61
|
+
require_relative 'rsmp/proxy/modules/versions'
|
|
62
|
+
require_relative 'rsmp/proxy/modules/tasks'
|
|
63
|
+
require_relative 'rsmp/proxy/proxy'
|
|
64
|
+
require_relative 'rsmp/proxy/supervisor/modules/status'
|
|
65
|
+
require_relative 'rsmp/proxy/supervisor/modules/commands'
|
|
66
|
+
require_relative 'rsmp/proxy/supervisor/modules/alarms'
|
|
67
|
+
require_relative 'rsmp/proxy/supervisor/modules/aggregated_status'
|
|
68
|
+
require_relative 'rsmp/proxy/supervisor/supervisor_proxy'
|
|
69
|
+
require_relative 'rsmp/proxy/site/modules/status'
|
|
70
|
+
require_relative 'rsmp/proxy/site/modules/aggregated_status'
|
|
71
|
+
require_relative 'rsmp/proxy/site/modules/alarms'
|
|
72
|
+
require_relative 'rsmp/proxy/site/modules/commands'
|
|
73
|
+
require_relative 'rsmp/proxy/site/site_proxy'
|
|
74
|
+
require_relative 'rsmp/tlc/modules/system'
|
|
75
|
+
require_relative 'rsmp/tlc/modules/modes'
|
|
76
|
+
require_relative 'rsmp/tlc/modules/plans'
|
|
77
|
+
require_relative 'rsmp/tlc/modules/signal_groups'
|
|
78
|
+
require_relative 'rsmp/tlc/modules/inputs'
|
|
79
|
+
require_relative 'rsmp/tlc/modules/outputs'
|
|
80
|
+
require_relative 'rsmp/tlc/modules/detector_logics'
|
|
81
|
+
require_relative 'rsmp/tlc/modules/traffic_data'
|
|
82
|
+
require_relative 'rsmp/tlc/modules/startup_sequence'
|
|
83
|
+
require_relative 'rsmp/tlc/modules/display'
|
|
84
|
+
require_relative 'rsmp/tlc/modules/helpers'
|
|
85
|
+
require_relative 'rsmp/tlc/startup_sequence'
|
|
86
|
+
require_relative 'rsmp/tlc/traffic_controller_site'
|
|
87
|
+
require_relative 'rsmp/tlc/traffic_controller'
|
|
88
|
+
require_relative 'rsmp/tlc/detector_logic'
|
|
89
|
+
require_relative 'rsmp/tlc/signal_group'
|
|
90
|
+
require_relative 'rsmp/tlc/signal_plan'
|
|
91
|
+
require_relative 'rsmp/tlc/input_states'
|
|
92
|
+
require_relative 'rsmp/tlc/signal_priority'
|
|
93
|
+
require_relative 'rsmp/convert/import/yaml'
|
|
94
|
+
require_relative 'rsmp/convert/export/json_schema'
|
|
95
|
+
require_relative 'rsmp/version'
|
data/rsmp.gemspec
CHANGED
|
@@ -1,48 +1,41 @@
|
|
|
1
|
-
lib = File.expand_path(
|
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
-
require
|
|
3
|
+
require 'rsmp/version'
|
|
4
4
|
require 'pathname'
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
|
-
spec.name =
|
|
7
|
+
spec.name = 'rsmp'
|
|
8
8
|
spec.version = RSMP::VERSION
|
|
9
|
-
spec.authors = [
|
|
10
|
-
spec.email = [
|
|
9
|
+
spec.authors = ['Emil Tin']
|
|
10
|
+
spec.email = ['zf0f@kk.dk']
|
|
11
11
|
|
|
12
|
-
spec.summary =
|
|
13
|
-
spec.description =
|
|
14
|
-
spec.homepage =
|
|
12
|
+
spec.summary = 'RoadSide Message Protocol (RSMP) library.'
|
|
13
|
+
spec.description = 'Easy RSMP site and supervisor communication.'
|
|
14
|
+
spec.homepage = 'https://github.com/rsmp-nordic/rsmp'
|
|
15
15
|
spec.licenses = ['MIT']
|
|
16
|
-
spec.required_ruby_version = '>= 3.
|
|
16
|
+
spec.required_ruby_version = '>= 3.4.0'
|
|
17
17
|
|
|
18
|
-
spec.metadata[
|
|
19
|
-
spec.metadata[
|
|
20
|
-
spec.metadata[
|
|
21
|
-
spec.metadata[
|
|
18
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
19
|
+
spec.metadata['source_code_uri'] = 'https://github.com/rsmp-nordic/rsmp'
|
|
20
|
+
spec.metadata['changelog_uri'] = 'https://github.com/rsmp-nordic/rsmp/blob/master/CHANGELOG.md'
|
|
21
|
+
spec.metadata['bug_tracker_uri'] = 'https://github.com/rsmp-nordic/rsmp/issues'
|
|
22
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
22
23
|
|
|
23
24
|
# Specify which files should be added to the gem when it is released.
|
|
24
25
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
25
|
-
spec.files
|
|
26
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
26
27
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
27
28
|
end
|
|
28
29
|
|
|
29
|
-
spec.bindir =
|
|
30
|
+
spec.bindir = 'exe'
|
|
30
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
31
|
-
spec.require_paths = [
|
|
32
|
+
spec.require_paths = ['lib']
|
|
32
33
|
|
|
33
|
-
spec.add_dependency
|
|
34
|
-
spec.add_dependency
|
|
35
|
-
spec.add_dependency
|
|
36
|
-
spec.add_dependency
|
|
37
|
-
spec.add_dependency
|
|
38
|
-
spec.add_dependency
|
|
39
|
-
spec.add_dependency
|
|
40
|
-
|
|
41
|
-
spec.add_development_dependency "bundler", "~> 2.6"
|
|
42
|
-
spec.add_development_dependency "rake", "~> 13.2"
|
|
43
|
-
spec.add_development_dependency "rspec", "~> 3.13"
|
|
44
|
-
spec.add_development_dependency "rspec-expectations", "~> 3.13"
|
|
45
|
-
spec.add_development_dependency "timecop", "~> 0.9"
|
|
46
|
-
spec.add_development_dependency "cucumber", "~> 9.2"
|
|
47
|
-
spec.add_development_dependency "aruba" , "~> 2.3"
|
|
34
|
+
spec.add_dependency 'async', '~> 2.32'
|
|
35
|
+
spec.add_dependency 'colorize', '~> 1.1'
|
|
36
|
+
spec.add_dependency 'io-endpoint', '~> 0.15'
|
|
37
|
+
spec.add_dependency 'io-stream', '~> 0.10'
|
|
38
|
+
spec.add_dependency 'logger', '~> 1.6'
|
|
39
|
+
spec.add_dependency 'ostruct', '~> 0.6'
|
|
40
|
+
spec.add_dependency 'rsmp_schema', '~> 0.8'
|
|
48
41
|
end
|