class CocoapodsMonorepo::PodspecLocalCache
Cache all path of the `podspec` under the specified directory.
Attributes
local_podspecs[R]
@return [Hash<String => String>] All podspec under specified directory.
Public Class Methods
from_local_path(directory_path)
click to toggle source
Create instance of `PodspecLocalCache` from some directory.
# File lib/cocoapods-monorepo/podspec_local_cache.rb, line 16 def self.from_local_path(directory_path) unless File.directory?(directory_path) raise Pod::Informative, "[cocoapods-monorepo]: `#{directory_path}` is not a directory!" end podspecs = {} podspec_files = Dir.glob(File.join(directory_path, "*", "*.podspec")) podspec_files.each do |podspec_file| specification = Pod::Specification.from_file(podspec_file) validate_podspec(specification) podspecs[specification.name] = specification.defined_in_file.to_s end new(podspecs.freeze) end
new(local_podspecs)
click to toggle source
# File lib/cocoapods-monorepo/podspec_local_cache.rb, line 11 def initialize(local_podspecs) @local_podspecs = local_podspecs end
validate_podspec(podspec)
click to toggle source
Checking whether `podspec` is valid or not.
# File lib/cocoapods-monorepo/podspec_local_cache.rb, line 31 def self.validate_podspec(podspec) defined_in_file = podspec.defined_in_file podspec.defined_in_file = nil validator = validator_for_podspec(podspec) validator.quick = true validator.allow_warnings = true validator.ignore_public_only_results = true Pod::Config.instance.with_changes(:silent => true) do validator.validate end unless validator.validated? raise Pod::Informative, "[cocoapods-monorepo]: `#{name}` is failed for validation: #{validator.failure_reason}:\n#{validator.results_message}" end ensure podspec.defined_in_file = defined_in_file end
validator_for_podspec(podspec)
click to toggle source
# File lib/cocoapods-monorepo/podspec_local_cache.rb, line 49 def self.validator_for_podspec(podspec) Pod::Validator.new(podspec, [], []) end