framework-generate 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c52393e7d7a5c188978e2e98c037d962f496e8ee
4
- data.tar.gz: f88232ba8e3b446421127c2caee605f2607dcdf2
3
+ metadata.gz: 1a1f81cf334acb873df9c312586d80bc5e6d2461
4
+ data.tar.gz: c1e95eab5f0b18ced214c7cf8d24dbaea778a1a1
5
5
  SHA512:
6
- metadata.gz: '05933b66155c86b44c8d4c76d8dcbb4d45d4f700cf7d84b61c934b6592b89395e685bbe20edf1a69457df2c7f9c6370635d9d19be2dfa160e99f5a17c52a3584'
7
- data.tar.gz: 32a88d51219ce0e3b4fd51c8515823e41c2bbe7020e5ffdfe36d3ad97f60e884e6b065f63abdd679bdcb47a1fbfec02e207308d924cf90164e2092f37db813dd
6
+ metadata.gz: 7c0e028ce6f3ebd0fa9feca17391a40731f29e175fcd7b2db52f8f26b1b0ad9947b884cefb81c89dee8552967101977c7902ddc1d75a14d04fad94665ad5d3da
7
+ data.tar.gz: b6471b8e21ffb0f457883bb3320591eacd663a4aab2a1d52e5378b3ac9526b512b4a30e175575a1d62a08fbac0b7ccaa3b6dc7d70009430610189d98c493e1c8
File without changes
@@ -2,11 +2,12 @@ require 'xcodeproj'
2
2
 
3
3
  module FrameworkGenerate
4
4
  class Project
5
- attr_accessor :name, :targets
5
+ attr_accessor :name, :targets, :scripts_directory
6
6
 
7
- def initialize(name = nil, targets = nil)
7
+ def initialize(name = nil, targets = nil, scripts_directory = nil)
8
8
  @name = name
9
9
  @targets = targets
10
+ @scripts_directory = scripts_directory
10
11
 
11
12
  yield(self) if block_given?
12
13
  end
@@ -100,6 +101,10 @@ module FrameworkGenerate
100
101
  settings
101
102
  end
102
103
 
104
+ def target_with_name(project, name)
105
+ project.native_targets.detect { |e| e.name == name }
106
+ end
107
+
103
108
  def generate
104
109
 
105
110
  project = Xcodeproj::Project.new(project_path)
@@ -117,10 +122,13 @@ module FrameworkGenerate
117
122
  end
118
123
 
119
124
  @targets.each do |target|
125
+ target.create(project, target.language, @scripts_directory)
126
+ end
120
127
 
128
+ @targets.each do |target|
121
129
  scheme = Xcodeproj::XCScheme.new
122
130
 
123
- created_target = target.create(project, target.language)
131
+ created_target = target_with_name(project, target.name)
124
132
 
125
133
  scheme.add_build_target(created_target)
126
134
 
@@ -128,13 +136,18 @@ module FrameworkGenerate
128
136
  scheme.add_test_target(created_target)
129
137
  end
130
138
 
131
- if target.test_target != nil
132
- created_test_target = target.test_target.create(project, target.language)
139
+ unless target.test_target.nil?
140
+ created_test_target = target_with_name(project, target.test_target.name)
141
+
133
142
  created_test_target.add_dependency(created_target)
134
143
 
135
144
  scheme.add_test_target(created_test_target)
136
145
  end
137
146
 
147
+ unless scheme.test_action.nil?
148
+ scheme.test_action.code_coverage_enabled = true
149
+ end
150
+
138
151
  scheme.save_as(project.path, target.name, true)
139
152
  xcschememanagement['SchemeUserState']["#{target.name}.xcscheme"] = {}
140
153
  xcschememanagement['SchemeUserState']["#{target.name}.xcscheme"]['isShown'] = true
@@ -1,4 +1,5 @@
1
1
  require 'xcodeproj'
2
+ require 'fileutils'
2
3
 
3
4
  module FrameworkGenerate
4
5
  class Target
@@ -142,15 +143,29 @@ module FrameworkGenerate
142
143
  end
143
144
  end
144
145
 
145
- def copy_carthage_frameworks(project, build_phase)
146
- script_file_path = File.join(File.dirname(__FILE__), 'copy-carthage-frameworks.sh')
146
+ def copy_carthage_frameworks(project, build_phase, scripts_directory)
147
+ script_file_name = 'copy-carthage-frameworks.sh'
148
+ script_file_path = File.join(File.dirname(__FILE__), script_file_name)
147
149
 
148
- script_file = File.open(script_file_path)
150
+ if scripts_directory.nil?
151
+ script_file = File.open(script_file_path)
149
152
 
150
- build_phase.shell_script = script_file.read
153
+ build_phase.shell_script = script_file.read
151
154
 
152
- script_file.close
155
+ script_file.close
156
+ else
157
+ script_path = File.join(Dir.pwd, scripts_directory, script_file_name)
158
+ dirname = File.dirname(script_path)
159
+ unless File.directory?(dirname)
160
+ FileUtils.mkdir_p(dirname)
161
+ end
162
+
163
+ FileUtils.cp(script_file_path, script_path, { :preserve => true })
153
164
 
165
+ xcode_path = File.join("${SRCROOT}", scripts_directory, script_file_name)
166
+ build_phase.shell_script = " exec \"#{xcode_path}\""
167
+ end
168
+
154
169
  add_framework_to_copy_phase(project, build_phase)
155
170
  end
156
171
 
@@ -207,7 +222,7 @@ module FrameworkGenerate
207
222
  add_build_scripts(target, @post_build_scripts)
208
223
  end
209
224
 
210
- def create(project, language)
225
+ def create(project, language, scripts_directory)
211
226
  name = @name
212
227
  type = @type
213
228
 
@@ -250,7 +265,7 @@ module FrameworkGenerate
250
265
  # Copy frameworks to test target
251
266
  if target.test_target_type?
252
267
  build_phase = target.new_shell_script_build_phase('Copy Carthage Frameworks')
253
- copy_carthage_frameworks(project, build_phase)
268
+ copy_carthage_frameworks(project, build_phase, scripts_directory)
254
269
  end
255
270
 
256
271
  target
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: framework-generate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre-Marc Airoldi