framework-generate 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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