2019-05-24 21:36:48 -03:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class SoftwareSpec
|
2019-05-26 00:17:40 -03:00
|
|
|
undef uses_from_macos
|
|
|
|
|
2019-05-24 21:36:48 -03:00
|
|
|
def uses_from_macos(deps, **args)
|
2019-09-17 18:10:02 -04:00
|
|
|
@uses_from_macos_elements ||= []
|
|
|
|
|
2019-05-25 22:06:39 -03:00
|
|
|
if deps.is_a?(Hash)
|
|
|
|
args = deps
|
|
|
|
deps = Hash[*args.shift]
|
|
|
|
end
|
|
|
|
|
2019-09-17 18:10:02 -04:00
|
|
|
if add_mac_dependency?(args)
|
|
|
|
depends_on(deps)
|
|
|
|
else
|
|
|
|
@uses_from_macos_elements << deps
|
|
|
|
end
|
2019-05-24 21:36:48 -03:00
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def add_mac_dependency?(args)
|
|
|
|
args.each { |key, version| args[key] = OS::Mac::Version.from_symbol(version) }
|
|
|
|
|
2019-09-17 18:34:37 -04:00
|
|
|
return false if args[:after] && OS::Mac.version >= args[:after]
|
2019-05-24 21:36:48 -03:00
|
|
|
|
2019-09-17 18:34:37 -04:00
|
|
|
return false if args[:before] && OS::Mac.version < args[:before]
|
2019-05-24 21:36:48 -03:00
|
|
|
|
2019-05-25 22:06:39 -03:00
|
|
|
args.present?
|
2019-05-24 21:36:48 -03:00
|
|
|
end
|
|
|
|
end
|