该rb文件主要完成:
- 1、require cocoapods依赖的rb文件
- 2、错误信息
- 3、autoload使用module关联后续被require的rb文件
require 'rubygems'
require 'xcodeproj'
# It is very likely that we'll need these and as some of those paths will atm
# result in a I18n deprecation warning, we load those here now so that we can
# get rid of that warning.
require 'active_support/core_ext/string/strip'
require 'active_support/core_ext/string/inflections'
require 'active_support/core_ext/array/conversions'
# TODO: check what this actually does by the time we're going to add support for
# other locales.
require 'i18n'
if I18n.respond_to?(:enforce_available_locales=)
I18n.enforce_available_locales = false
end
module Pod
# 1、
require 'pathname'
require 'tmpdir'
# 2、导入依赖的cocoapods rb文件
require 'cocoapods/gem_version'
require 'cocoapods-core'
require 'cocoapods/config'
require 'cocoapods/downloader'
# Loaded immediately after dependencies to ensure proper override of their
# UI methods.
require 'cocoapods/user_interface'
# 2、Indicates an user error. This is defined in cocoapods-core.
class Informative < PlainInformative
def message
"[!] #{super}".red
end
end
# 3、Xcodeproj::PlainInformative.include(CLAide::InformativeError)
Xcodeproj::PlainInformative.send(:include, CLAide::InformativeError)
# 4、autoload(module, filename)
# - 1)将module与filename关联起来
# - 2)当第一次使用module时,使用require加载对应的rb文件
# - 3)执行过程与require一样
# - 4)成功返回nil,找不到文件会抛出LoadError
# - 5)通过 Pod::module => 访问被关联的 filename rb文件
# => Pod::Command => require('cocoapods/command') => cocoapods/command.rb
autoload :AggregateTarget, 'cocoapods/target/aggregate_target'
autoload :Command, 'cocoapods/command'
autoload :Deintegrator, 'cocoapods_deintegrate'
autoload :Executable, 'cocoapods/executable'
autoload :ExternalSources, 'cocoapods/external_sources'
autoload :Installer, 'cocoapods/installer'
autoload :HooksManager, 'cocoapods/hooks_manager'
autoload :PodTarget, 'cocoapods/target/pod_target'
autoload :Project, 'cocoapods/project'
autoload :Resolver, 'cocoapods/resolver'
autoload :Sandbox, 'cocoapods/sandbox'
autoload :Target, 'cocoapods/target'
autoload :Validator, 'cocoapods/validator'
# 5、继续定义module,专门关联右侧rb文件
module Generator
autoload :Acknowledgements, 'cocoapods/generator/acknowledgements'
autoload :Markdown, 'cocoapods/generator/acknowledgements/markdown'
autoload :Plist, 'cocoapods/generator/acknowledgements/plist'
autoload :BridgeSupport, 'cocoapods/generator/bridge_support'
autoload :Constant, 'cocoapods/generator/constant'
autoload :CopyResourcesScript, 'cocoapods/generator/copy_resources_script'
autoload :DummySource, 'cocoapods/generator/dummy_source'
autoload :EmbedFrameworksScript, 'cocoapods/generator/embed_frameworks_script'
autoload :Header, 'cocoapods/generator/header'
autoload :InfoPlistFile, 'cocoapods/generator/info_plist_file'
autoload :ModuleMap, 'cocoapods/generator/module_map'
autoload :PrefixHeader, 'cocoapods/generator/prefix_header'
autoload :UmbrellaHeader, 'cocoapods/generator/umbrella_header'
autoload :AppTargetHelper, 'cocoapods/generator/app_target_helper'
end
# 6、
require 'cocoapods/core_overrides'
end
网友评论