Module: Pod::PodGenerate::Patches::ProjectPatch::CachedPodGroup

Defined in:
lib/cocoapods-podgenerate/patches/project_patch.rb

Instance Method Summary collapse

Instance Method Details

#add_pod_group(pod_name, path, development = false, absolute = false) ⇒ PBXGroup

添加新 pod group 时清除缓存

原始方法在 main_group 或 pods/development_pods group 下创建新的 PBXGroup。由于 project 结构发生了变化,我们需要清除缓存,让下一次 pod_group 调用重新构建。

Parameters:

  • pod_name (String)

    pod 名称

  • path (String)

    pod 路径

  • development (Boolean) (defaults to: false)

    是否为开发 pod

  • absolute (Boolean) (defaults to: false)

    是否为绝对路径

Returns:

  • (PBXGroup)

    新创建的 group



61
62
63
64
65
# File 'lib/cocoapods-podgenerate/patches/project_patch.rb', line 61

def add_pod_group(pod_name, path, development = false, absolute = false)
  group = super
  @pod_group_cache = nil if defined?(@pod_group_cache)
  group
end

#pod_group(pod_name) ⇒ PBXGroup?

O(1) 查找 pod_group

首次调用时通过 build_pod_group_cache 构建 Hash 缓存,后续调用直接从缓存中查找。缓存键为 pod_name,值为 PBXGroup。

Parameters:

  • pod_name (String)

    pod 名称

Returns:

  • (PBXGroup, nil)

    对应的 group,或 nil(pod 不存在)



45
46
47
48
# File 'lib/cocoapods-podgenerate/patches/project_patch.rb', line 45

def pod_group(pod_name)
  @pod_group_cache ||= build_pod_group_cache
  @pod_group_cache[pod_name]
end