启发式CocoaPods是否用于" pod尝试"命令记录在哪里?

时间:2014-08-20 02:59:35

标签: cocoapods

在CocoaPods v.0.29中,' pod尝试'命令已添加(请参阅http://blog.cocoapods.org/CocoaPods-0.29/)。从文档(大胆强调我的):

  

换句话说,该命令会自动执行以下步骤:

     
      
  1. 在临时目录中查看Pod的来源。
  2.   
  3. 使用简单启发式搜索任何看起来像演示项目的项目。
  4.   
  5. 如果找到所需项目,则安装所有CocoaPods依赖项。
  6.   
  7. 在Xcode中打开工作区/项目。
  8.   

我搜索了Google和StackOverflow,但未能找到有关CocoaPods用于查找演示项目的特定启发式方法的任何文档。 CocoaPods找到一个演示项目的过程,和/或包含在任何地方记录的演示项目和方案的最佳实践?我正在组建一个库,我希望很快就会变成一个CocoaPod,并且希望确保我的示例项目能够与CocoaPods一起正常工作。

感谢您的时间。

1 个答案:

答案 0 :(得分:7)

我也在寻找这个,我唯一得到的是source of the pod-try plugin

# Picks a project or workspace suitable for the demo purposes in the
# given directory.
#
# To decide the project simple heuristics are used according to the name,
# if no project is found this method raises and `Informative` otherwise
# if more than one project is found the choice is presented to the user.
#
# @param  [#to_s] dir
#         The path where to look for projects.
#
# @return [String] The path of the project.
#
def pick_demo_project(dir)
  projs = projects_in_dir(dir)
  if projs.count == 0
    raise Informative, 'Unable to find any project in the source files' \
      " of the Pod: `#{dir}`"
  elsif projs.count == 1
    projs.first
  elsif (workspaces = projs.grep(/(demo|example).*\.xcworkspace$/i)).count == 1
    workspaces.first
  elsif (projects = projs.grep(/demo|example/i)).count == 1
    projects.first
  else
    message = 'Which project would you like to open'
    selection_array = projs.map do |p|
      Pathname.new(p).relative_path_from(dir).to_s
    end
    index = choose_from_array(selection_array, message)
    projs[index]
  end
end

我不了解Ruby,但似乎它获取了所有XCode项目/工作区的列表(除了Pods项目和具有姐妹工作区的项目)并选择:

  1. 唯一的项目,如果只找到一个项目。
  2. 唯一拥有" demo"或"示例"在文件名中,如果只找到一个这样的项目。
  3. 唯一拥有" demo"或"示例"在文件名中,如果只找到一个这样的项目。
  4. 没什么,但是你可以从找到的所有物品中选择。
  5. 如果有人对此进行更正 - 他们会受到欢迎,因为我不是Ruby人。