Class: Phoenx::GenerateWorkspace

Inherits:
Object
  • Object
show all
Defined in:
lib/phoenx/use_cases/generate_workspace.rb

Instance Method Summary collapse

Constructor Details

#initialize(workspace) ⇒ GenerateWorkspace

Returns a new instance of GenerateWorkspace.



10
11
12
13
14
15
# File 'lib/phoenx/use_cases/generate_workspace.rb', line 10

def initialize(workspace)

  @workspace = workspace
  @project_files = []

end

Instance Method Details

#generateObject



73
74
75
76
77
78
# File 'lib/phoenx/use_cases/generate_workspace.rb', line 73

def generate

  self.generate_projects
  self.generate_workspace

end

#generate_project(name, value) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/phoenx/use_cases/generate_workspace.rb', line 31

def generate_project(name, value)

  path = value
  
  if path == nil
  
    path = '.'
  
  end

  previous = Dir.pwd

  Dir.chdir(path) do
    
    specs = Dir[name + '.' + PROJECT_EXTENSION]
    
    puts "Processing ".green + specs.first.bold

    file = File.read(specs.first)
    spec = eval(file)
  
    generator = Phoenx::GenerateProject.new spec
    generator.build
  end
  
  # Monkey patch due to bug in Xcode 8 that prevents chdir to switch back to previous dir
  Dir.cp_chdir previous

end

#generate_projectsObject



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/phoenx/use_cases/generate_workspace.rb', line 61

def generate_projects

  @workspace.projects.each do |key,value| 
  
    self.generate_project(key,value)
  
  end
  
  self.generate_project(@workspace.main_project_name,@workspace.main_project_path)

end

#generate_workspaceObject



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/phoenx/use_cases/generate_workspace.rb', line 17

def generate_workspace

  workspace = Xcodeproj::Workspace.new(@workspace.main_project_path + @workspace.main_project_name + "." + XCODE_PROJECT_EXTENSION)

  @workspace.projects.each do |key,value| 

    workspace << value + key + "." + XCODE_PROJECT_EXTENSION

  end

  workspace.save_as(@workspace.name + "." + XCODE_WORKSPACE_EXTENSION)

end