Skip to content

Commit 899a6c5

Browse files
committed
Try non-nil params
1 parent 6c18f5c commit 899a6c5

File tree

1 file changed

+40
-42
lines changed

1 file changed

+40
-42
lines changed

Library/Homebrew/service.rb

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Service
2323
PROCESS_TYPE_ADAPTIVE = :adaptive
2424

2525
KEEP_ALIVE_KEYS = [:always, :successful_exit, :crashed, :path].freeze
26-
SOCKET_STRING_REGEX = %r{^([a-z]+)://(.+):([0-9]+)$}i
26+
SOCKET_STRING_REGEX = %r{^(?<type>[a-z]+)://(?<host>.+):(?<port>[0-9]+)$}i
2727

2828
RunParam = T.type_alias { T.nilable(T.any(T::Array[T.any(String, Pathname)], String, Pathname)) }
2929
Sockets = T.type_alias { T::Hash[Symbol, { host: String, port: String, type: String }] }
@@ -107,44 +107,44 @@ def run(command = nil, macos: nil, linux: nil)
107107
end
108108
end
109109

110-
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
111-
def working_dir(path = nil)
110+
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
111+
def working_dir(path = T.unsafe(nil))
112112
if path
113113
@working_dir = path.to_s
114114
else
115115
@working_dir
116116
end
117117
end
118118

119-
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
120-
def root_dir(path = nil)
119+
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
120+
def root_dir(path = T.unsafe(nil))
121121
if path
122122
@root_dir = path.to_s
123123
else
124124
@root_dir
125125
end
126126
end
127127

128-
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
129-
def input_path(path = nil)
128+
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
129+
def input_path(path = T.unsafe(nil))
130130
if path
131131
@input_path = path.to_s
132132
else
133133
@input_path
134134
end
135135
end
136136

137-
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
138-
def log_path(path = nil)
137+
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
138+
def log_path(path = T.unsafe(nil))
139139
if path
140140
@log_path = path.to_s
141141
else
142142
@log_path
143143
end
144144
end
145145

146-
sig { params(path: T.nilable(T.any(String, Pathname))).returns(T.nilable(String)) }
147-
def error_log_path(path = nil)
146+
sig { params(path: T.any(String, Pathname)).returns(T.nilable(String)) }
147+
def error_log_path(path = T.unsafe(nil))
148148
if path
149149
@error_log_path = path.to_s
150150
else
@@ -153,10 +153,10 @@ def error_log_path(path = nil)
153153
end
154154

155155
sig {
156-
params(value: T.nilable(T.any(T::Boolean, T::Hash[Symbol, T.untyped])))
156+
params(value: T.any(T::Boolean, T::Hash[Symbol, T.untyped]))
157157
.returns(T.nilable(T::Hash[Symbol, T.untyped]))
158158
}
159-
def keep_alive(value = nil)
159+
def keep_alive(value = T.unsafe(nil))
160160
case value
161161
when nil
162162
@keep_alive
@@ -171,8 +171,8 @@ def keep_alive(value = nil)
171171
end
172172
end
173173

174-
sig { params(value: T.nilable(T::Boolean)).returns(T::Boolean) }
175-
def require_root(value = nil)
174+
sig { params(value: T::Boolean).returns(T::Boolean) }
175+
def require_root(value = T.unsafe(nil))
176176
if value.nil?
177177
@require_root
178178
else
@@ -186,8 +186,8 @@ def requires_root?
186186
@require_root.present? && @require_root == true
187187
end
188188

189-
sig { params(value: T.nilable(T::Boolean)).returns(T.nilable(T::Boolean)) }
190-
def run_at_load(value = nil)
189+
sig { params(value: T::Boolean).returns(T.nilable(T::Boolean)) }
190+
def run_at_load(value = T.unsafe(nil))
191191
if value.nil?
192192
@run_at_load
193193
else
@@ -196,32 +196,30 @@ def run_at_load(value = nil)
196196
end
197197

198198
sig {
199-
params(value: T.nilable(T.any(String, T::Hash[Symbol, String])))
199+
params(value: T.any(String, T::Hash[Symbol, String]))
200200
.returns(T::Hash[Symbol, T::Hash[Symbol, String]])
201201
}
202-
def sockets(value = nil)
202+
def sockets(value = T.unsafe(nil))
203203
return @sockets if value.nil?
204204

205-
@sockets = case value
205+
value_hash = case value
206206
when String
207207
{ listeners: value }
208208
when Hash
209209
value
210-
end.transform_values do |socket_string|
210+
end
211+
212+
@sockets = T.must(value_hash).transform_values do |socket_string|
211213
match = socket_string.match(SOCKET_STRING_REGEX)
212214
raise TypeError, "Service#sockets a formatted socket definition as <type>://<host>:<port>" unless match
213215

214-
type = T.must(match[1])
215-
host = T.must(match[2])
216-
port = T.must(match[3])
217-
218216
begin
219-
IPAddr.new(host)
217+
IPAddr.new(match[:host])
220218
rescue IPAddr::InvalidAddressError
221219
raise TypeError, "Service#sockets expects a valid ipv4 or ipv6 host address"
222220
end
223221

224-
{ host:, port:, type: }
222+
{ host: match[:host], port: match[:port], type: match[:type] }
225223
end
226224
end
227225

@@ -231,26 +229,26 @@ def keep_alive?
231229
!@keep_alive.empty? && @keep_alive[:always] != false
232230
end
233231

234-
sig { params(value: T.nilable(T::Boolean)).returns(T::Boolean) }
235-
def launch_only_once(value = nil)
232+
sig { params(value: T::Boolean).returns(T::Boolean) }
233+
def launch_only_once(value = T.unsafe(nil))
236234
if value.nil?
237235
@launch_only_once
238236
else
239237
@launch_only_once = value
240238
end
241239
end
242240

243-
sig { params(value: T.nilable(Integer)).returns(T.nilable(Integer)) }
244-
def restart_delay(value = nil)
245-
if restart_delay
241+
sig { params(value: Integer).returns(T.nilable(Integer)) }
242+
def restart_delay(value = T.unsafe(nil))
243+
if value
246244
@restart_delay = value
247245
else
248246
@restart_delay
249247
end
250248
end
251249

252-
sig { params(value: T.nilable(Symbol)).returns(T.nilable(Symbol)) }
253-
def process_type(value = nil)
250+
sig { params(value: Symbol).returns(T.nilable(Symbol)) }
251+
def process_type(value = T.unsafe(nil))
254252
case value
255253
when nil
256254
@process_type
@@ -263,8 +261,8 @@ def process_type(value = nil)
263261
end
264262
end
265263

266-
sig { params(value: T.nilable(Symbol)).returns(T.nilable(Symbol)) }
267-
def run_type(value = nil)
264+
sig { params(value: Symbol).returns(T.nilable(Symbol)) }
265+
def run_type(value = T.unsafe(nil))
268266
case value
269267
when nil
270268
@run_type
@@ -275,17 +273,17 @@ def run_type(value = nil)
275273
end
276274
end
277275

278-
sig { params(value: T.nilable(Integer)).returns(T.nilable(Integer)) }
279-
def interval(value = nil)
276+
sig { params(value: Integer).returns(T.nilable(Integer)) }
277+
def interval(value = T.unsafe(nil))
280278
if value
281279
@interval = value
282280
else
283281
@interval
284282
end
285283
end
286284

287-
sig { params(value: T.nilable(String)).returns(T::Hash[Symbol, T.any(Integer, String)]) }
288-
def cron(value = nil)
285+
sig { params(value: String).returns(T::Hash[Symbol, T.any(Integer, String)]) }
286+
def cron(value = T.unsafe(nil))
289287
if value
290288
@cron = parse_cron(value)
291289
else
@@ -344,8 +342,8 @@ def environment_variables(variables = {})
344342
@environment_variables = variables.transform_values(&:to_s)
345343
end
346344

347-
sig { params(value: T.nilable(T::Boolean)).returns(T::Boolean) }
348-
def macos_legacy_timers(value = nil)
345+
sig { params(value: T::Boolean).returns(T::Boolean) }
346+
def macos_legacy_timers(value = T.unsafe(nil))
349347
if value.nil?
350348
@macos_legacy_timers
351349
else

0 commit comments

Comments
 (0)