Module: PodBuilder

Defined in:
lib/pod_builder/core.rb,
lib/pod_builder/analyze.rb,
lib/pod_builder/install.rb,
lib/pod_builder/podfile.rb,
lib/pod_builder/podspec.rb,
lib/pod_builder/version.rb,
lib/pod_builder/command/init.rb,
lib/pod_builder/command/none.rb,
lib/pod_builder/podfile_item.rb,
lib/pod_builder/command/build.rb,
lib/pod_builder/command/clean.rb,
lib/pod_builder/configuration.rb,
lib/pod_builder/command/switch.rb,
lib/pod_builder/command/build_all.rb,
lib/pod_builder/command/deintegrate.rb,
lib/pod_builder/command/restore_all.rb,
lib/pod_builder/command/generate_lfs.rb,
lib/pod_builder/podfile/post_actions.rb,
lib/pod_builder/command/synch_podfile.rb,
lib/pod_builder/command/install_sources.rb,
lib/pod_builder/command/generate_podspec.rb

Defined Under Namespace

Modules: Command Classes: Analyze, Configuration, Install, Podfile, PodfileItem, Podspec

Constant Summary collapse

VERSION =
"0.2.2"

Class Method Summary collapse

Class Method Details

.basepath(child = "") ⇒ Object



36
37
38
# File 'lib/pod_builder/core.rb', line 36

def self.basepath(child = "")
  return "#{Configuration.base_path}/#{child}".gsub("//", "/").gsub(/\/$/, '')
end

.clean_basepath ⇒ Object



75
76
77
78
79
80
81
82
83
84
# File 'lib/pod_builder/core.rb', line 75

def self.clean_basepath
  if path = PodBuilder::find_xcodeproj
    PodBuilder::safe_rm_rf(basepath(File.basename(path)))      
  end
  if path = PodBuilder::find_xcodeworkspace
    PodBuilder::safe_rm_rf(basepath(File.basename(path)))      
  end

  PodBuilder::safe_rm_rf(basepath("Pods"))
end

.find_xcodeproj ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/pod_builder/core.rb', line 46

def self.find_xcodeproj
  project_name = File.basename(find_xcodeworkspace, ".*")

  xcodeprojects = Dir.glob("#{home}/**/#{project_name}.xcodeproj").select { |x| !x.include?("/Pods/") && !x.include?("/Sources/") && !x.include?(basepath) }
  raise "xcodeproj not found!".red if xcodeprojects.count == 0
  raise "Found multiple xcodeproj:\n#{xcodeprojects.join("\n")}".red if xcodeprojects.count > 1

  return xcodeprojects.first
end

.find_xcodeworkspace ⇒ Object



56
57
58
59
60
61
62
# File 'lib/pod_builder/core.rb', line 56

def self.find_xcodeworkspace
  xcworkspaces = Dir.glob("#{home}/**/#{Configuration.project_name}*.xcworkspace").select { |x| !x.include?("/Pods/") && !x.include?("/Sources/") && !x.include?(basepath) && !x.include?(".xcodeproj/") }
  raise "xcworkspace not found!".red if xcworkspaces.count == 0
  raise "Found multiple xcworkspaces:\n#{xcworkspaces.join("\n")}".red if xcworkspaces.count > 1

  return xcworkspaces.first
end

.prepare_basepath ⇒ Object



64
65
66
67
68
69
70
71
72
73
# File 'lib/pod_builder/core.rb', line 64

def self.prepare_basepath
  workspace_path = PodBuilder::find_xcodeworkspace
  project_path = PodBuilder::find_xcodeproj
  if workspace_path && project_path
    FileUtils.mkdir_p(basepath("Pods/Target Support Files"))
    FileUtils.cp_r(workspace_path, basepath)   
    FileUtils.cp_r(project_path, basepath)   
    FileUtils.rm_f(basepath("Podfile.lock"))
  end
end

.project_path(child = "") ⇒ Object



40
41
42
43
44
# File 'lib/pod_builder/core.rb', line 40

def self.project_path(child = "")
  project = PodBuilder::find_xcodeworkspace
  
  return project ? "#{File.dirname(project)}/#{child}".gsub("//", "/").gsub(/\/$/, '') : nil
end

.safe_rm_rf(path) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pod_builder/core.rb', line 15

def self.safe_rm_rf(path)
  unless File.exist?(path)
    return
  end

  current_dir = Dir.pwd

  Dir.chdir(path)

  h = `git rev-parse --show-toplevel`.strip()
  raise "\n\nNo git repository found, can't delete files!\n".red if h.empty?

  FileUtils.rm_rf(path)

  if File.exist?(current_dir)
    Dir.chdir(current_dir)
  else
    Dir.chdir(basepath)
  end
end