Merge pull request #14630 from dduugg/type-requirement
Enable typing in Requirement classes
This commit is contained in:
commit
8570cb9729
@ -1,4 +1,4 @@
|
|||||||
# typed: false
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# A requirement on a code-signing identity.
|
# A requirement on a code-signing identity.
|
||||||
@ -11,8 +11,8 @@ class CodesignRequirement < Requirement
|
|||||||
|
|
||||||
def initialize(tags)
|
def initialize(tags)
|
||||||
options = tags.shift
|
options = tags.shift
|
||||||
raise ArgumentError("CodesignRequirement requires an options Hash!") unless options.is_a?(Hash)
|
raise ArgumentError, "CodesignRequirement requires an options Hash!" unless options.is_a?(Hash)
|
||||||
raise ArgumentError("CodesignRequirement requires an identity key!") unless options.key?(:identity)
|
raise ArgumentError, "CodesignRequirement requires an identity key!" unless options.key?(:identity)
|
||||||
|
|
||||||
@identity = options.fetch(:identity)
|
@identity = options.fetch(:identity)
|
||||||
@with = options.fetch(:with, "code signing")
|
@with = options.fetch(:with, "code signing")
|
||||||
@ -21,6 +21,7 @@ class CodesignRequirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
satisfy(build_env: false) do
|
satisfy(build_env: false) do
|
||||||
|
T.bind(self, CodesignRequirement)
|
||||||
mktemp do
|
mktemp do
|
||||||
FileUtils.cp "/usr/bin/false", "codesign_check"
|
FileUtils.cp "/usr/bin/false", "codesign_check"
|
||||||
quiet_system "/usr/bin/codesign", "-f", "-s", @identity,
|
quiet_system "/usr/bin/codesign", "-f", "-s", @identity,
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# typed: false
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "requirement"
|
require "requirement"
|
||||||
@ -55,6 +55,7 @@ class MacOSRequirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
satisfy(build_env: false) do
|
satisfy(build_env: false) do
|
||||||
|
T.bind(self, MacOSRequirement)
|
||||||
next Array(@version).any? { |v| MacOS.version.public_send(@comparator, v) } if version_specified?
|
next Array(@version).any? { |v| MacOS.version.public_send(@comparator, v) } if version_specified?
|
||||||
next true if OS.mac?
|
next true if OS.mac?
|
||||||
next true if @version
|
next true if @version
|
||||||
@ -115,10 +116,10 @@ class MacOSRequirement < Requirement
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_json(*args)
|
def to_json(options)
|
||||||
comp = @comparator.to_s
|
comp = @comparator.to_s
|
||||||
return { comp => @version.map(&:to_s) }.to_json(*args) if @version.is_a?(Array)
|
return { comp => @version.map(&:to_s) }.to_json(options) if @version.is_a?(Array)
|
||||||
|
|
||||||
{ comp => [@version.to_s] }.to_json(*args)
|
{ comp => [@version.to_s] }.to_json(options)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# typed: false
|
# typed: true
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "requirement"
|
require "requirement"
|
||||||
@ -13,7 +13,10 @@ class XcodeRequirement < Requirement
|
|||||||
|
|
||||||
attr_reader :version
|
attr_reader :version
|
||||||
|
|
||||||
satisfy(build_env: false) { xcode_installed_version }
|
satisfy(build_env: false) do
|
||||||
|
T.bind(self, XcodeRequirement)
|
||||||
|
xcode_installed_version
|
||||||
|
end
|
||||||
|
|
||||||
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/)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user