Document SDK.

This commit is contained in:
Markus Reiter 2020-08-25 00:33:34 +02:00
parent 390deeb5ac
commit 3efaf89787

View File

@ -4,6 +4,9 @@ require "os/mac/version"
module OS module OS
module Mac module Mac
# Class representing a macOS SDK.
#
# @api private
class SDK class SDK
attr_reader :version, :path, :source attr_reader :version, :path, :source
@ -14,6 +17,9 @@ module OS
end end
end end
# Base class for SDK locators.
#
# @api private
class BaseSDKLocator class BaseSDKLocator
class NoSDKError < StandardError; end class NoSDKError < StandardError; end
@ -42,7 +48,7 @@ module OS
else else
sdk_for v sdk_for v
end end
rescue BaseSDKLocator::NoSDKError rescue NoSDKError
latest_sdk latest_sdk
end end
# Only return an SDK older than the OS version if it was specifically requested # Only return an SDK older than the OS version if it was specifically requested
@ -79,7 +85,11 @@ module OS
end end
end end
end end
private_constant :BaseSDKLocator
# Helper class for locating the Xcode SDK.
#
# @api private
class XcodeSDKLocator < BaseSDKLocator class XcodeSDKLocator < BaseSDKLocator
def source def source
:xcode :xcode
@ -100,6 +110,9 @@ module OS
end end
end end
# Helper class for locating the macOS Command Line Tools SDK.
#
# @api private
class CLTSDKLocator < BaseSDKLocator class CLTSDKLocator < BaseSDKLocator
def source def source
:clt :clt