class XcodePristine::ProjectFinder
Attributes
projects[R]
Public Class Methods
new(args)
click to toggle source
# File lib/xcode_pristine/project_finder.rb, line 7 def initialize args @projects = args.map do |path| workspaces = Dir.glob(File.join(path, '*.xcworkspace')) projects = Dir.glob(File.join(path, '*.xcodeproj')) if path.end_with? "xcworkspace" projects_from_workspace path elsif path.end_with? "xcodeproj" project_from_file path elsif workspaces.empty? projects_from_files(projects) else projects_from_workspace_files(workspaces) end end.flatten end
Public Instance Methods
project_from_file(project_file)
click to toggle source
# File lib/xcode_pristine/project_finder.rb, line 24 def project_from_file project_file Xcodeproj::Project.open(project_file) end
projects_from_files(files)
click to toggle source
# File lib/xcode_pristine/project_finder.rb, line 28 def projects_from_files files files.map do |project_file| project_from_file(project_file) end end
projects_from_workspace(workspace_file)
click to toggle source
# File lib/xcode_pristine/project_finder.rb, line 34 def projects_from_workspace workspace_file workspace = Xcodeproj::Workspace.new_from_xcworkspace(workspace_file) workspace.file_references.select do |file_reference| file_reference.path.end_with? 'xcodeproj' end.map do |project_file_reference| project_file = File.join(workspace_file, '..', project_file_reference.path) project_from_file(project_file) end end
projects_from_workspace_files(workspaces)
click to toggle source
# File lib/xcode_pristine/project_finder.rb, line 44 def projects_from_workspace_files workspaces workspaces.map do |workspace_file| projects_from_workspace(workspace_file) end.flatten end