7e6f6e1603
Enables frozens string for the following: * lib/gitlab/conflict/**/*.rb * lib/gitlab/cross_project_access/**/*.rb * lib/gitlab/cycle_analytics/**/*.rb * lib/gitlab/data_builder/**/*.rb * lib/gitlab/database/**/*.rb * lib/gitlab/dependency_linker/**/*.rb * lib/gitlab/diff/**/*.rb * lib/gitlab/downtime_check/**/*.rb * lib/gitlab/email/**/*.rb * lib/gitlab/etag_caching/**/*.rb Partially addresses gitlab-org/gitlab-ce#47424.
34 lines
889 B
Ruby
34 lines
889 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module DependencyLinker
|
|
class PodspecJsonLinker < JsonLinker
|
|
include Cocoapods
|
|
|
|
self.file_type = :podspec_json
|
|
|
|
private
|
|
|
|
def link_dependencies
|
|
link_json('name', json["name"], &method(:package_url))
|
|
link_json('license', &method(:license_url))
|
|
link_json(%w[homepage git], URL_REGEX, &:itself)
|
|
|
|
link_packages_at_key("dependencies", &method(:package_url))
|
|
|
|
json["subspecs"]&.each do |subspec|
|
|
link_packages_at_key("dependencies", subspec, &method(:package_url))
|
|
end
|
|
end
|
|
|
|
def link_packages_at_key(key, root = json, &url_proc)
|
|
dependencies = root[key]
|
|
return unless dependencies
|
|
|
|
dependencies.each do |name, _|
|
|
link_regex(/"(?<name>#{Regexp.escape(name)})":\s*\[/, &url_proc)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|