class Pod::Command::Spec
Private Instance Methods
all_paths_from_set(set, specific_version = nil)
click to toggle source
@return [String] of spec paths one on each line
# File lib/cocoapods/command/spec.rb, line 73 def all_paths_from_set(set, specific_version = nil) paths = '' sources = set.sources sources.each do |source| versions = source.versions(set.name) if specific_version versions = versions.select { |v| v.version == specific_version } end versions.each do |version| spec = source.specification(set.name, version) paths += "#{pathname_from_spec(spec, source)}\n" end end raise Informative, "Can't find spec for #{set.name}." if paths.empty? paths end
get_path_of_spec(spec, version_filter = false)
click to toggle source
@param [String] spec
The name of the specification.
@param [Bool,String] version_filter
- If set to false, will return only the spec path for the latest version (the default). - If set to true, will return a list of all paths of all the versions of that spec. - If set to a String, will return only the spec path for the version specified by that string.
@return [Pathname] the absolute path or paths of the given podspec
# File lib/cocoapods/command/spec.rb, line 43 def get_path_of_spec(spec, version_filter = false) sets = config.sources_manager.search_by_name(spec) if sets.count == 1 set = sets.first elsif sets.map(&:name).include?(spec) set = sets.find { |s| s.name == spec } else names = sets.map(&:name) * ', ' raise Informative, "More than one spec found for '#{spec}':\n#{names}" end if version_filter.is_a? String all_paths_from_set(set, version_filter).split(/\n/).first elsif version_filter == true all_paths_from_set(set) else best_spec, spec_source = spec_and_source_from_set(set) pathname_from_spec(best_spec, spec_source) end end
pathname_from_spec(spec, _source)
click to toggle source
@return [Pathname] the absolute path of the given spec and source
# File lib/cocoapods/command/spec.rb, line 67 def pathname_from_spec(spec, _source) Pathname(spec.defined_in_file) end
spec_and_source_from_set(set)
click to toggle source
@return [Specification, Source] the highest known specification with it's source of the given
set.
# File lib/cocoapods/command/spec.rb, line 99 def spec_and_source_from_set(set) sources = set.sources best_source = best_version = nil sources.each do |source| versions = source.versions(set.name) versions.each do |version| if !best_version || version > best_version best_source = source best_version = version end end end if !best_source || !best_version raise Informative, "Unable to locate highest known specification for `#{set.name}'" end [best_source.specification(set.name, best_version), best_source] end
validate_regex!(query)
click to toggle source
@param [String] query the regular expression string to validate
@raise if the query is not a valid regular expression
# File lib/cocoapods/command/spec.rb, line 27 def validate_regex!(query) /#{query}/ rescue RegexpError help! 'A valid regular expression is required.' end