requirements: set typed: strict

This commit is contained in:
Mike McQuaid 2025-06-17 16:34:59 +01:00
parent 09eaf1495a
commit 9375fc21f4
No known key found for this signature in database

View File

@ -1,4 +1,4 @@
# typed: true # rubocop:todo Sorbet/StrictSigil # typed: strict
# frozen_string_literal: true # frozen_string_literal: true
require "requirement" require "requirement"
@ -7,6 +7,7 @@ require "requirement"
class XcodeRequirement < Requirement class XcodeRequirement < Requirement
fatal true fatal true
sig { returns(T.nilable(String)) }
attr_reader :version attr_reader :version
satisfy(build_env: false) do satisfy(build_env: false) do
@ -14,8 +15,10 @@ class XcodeRequirement < Requirement
xcode_installed_version xcode_installed_version
end end
sig { params(tags: T::Array[String]).void }
def initialize(tags = []) def initialize(tags = [])
@version = tags.shift if tags.first.to_s.match?(/(\d\.)+\d/) version = tags.shift if tags.first.to_s.match?(/(\d\.)+\d/)
@version = T.let(version, T.nilable(String))
super super
end end
@ -53,6 +56,7 @@ class XcodeRequirement < Requirement
"#<#{self.class.name}: version>=#{@version.inspect} #{tags.inspect}>" "#<#{self.class.name}: version>=#{@version.inspect} #{tags.inspect}>"
end end
sig { returns(String) }
def display_s def display_s
return "#{name.capitalize} (on macOS)" unless @version return "#{name.capitalize} (on macOS)" unless @version