xcoder 0.1.15 → 0.1.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/.gitignore +6 -0
  2. data/.rbenv-version +1 -0
  3. data/.rvmrc +1 -1
  4. data/Gemfile +10 -2
  5. data/README.md +110 -9
  6. data/Rakefile +2 -2
  7. data/bin/xcoder +74 -0
  8. data/lib/xcode/builder.rb +1 -2
  9. data/lib/xcode/builder/base_builder.rb +231 -102
  10. data/lib/xcode/builder/build_parser.rb +146 -0
  11. data/lib/xcode/builder/project_target_config_builder.rb +2 -2
  12. data/lib/xcode/builder/scheme_builder.rb +29 -12
  13. data/lib/xcode/buildspec.rb +286 -0
  14. data/lib/xcode/configuration_list.rb +24 -24
  15. data/lib/xcode/deploy/ftp.rb +56 -0
  16. data/lib/xcode/deploy/kickfolio.rb +18 -0
  17. data/lib/xcode/deploy/s3.rb +38 -0
  18. data/lib/xcode/deploy/ssh.rb +43 -0
  19. data/lib/xcode/deploy/templates/index.rhtml +22 -0
  20. data/lib/xcode/deploy/templates/manifest.rhtml +31 -0
  21. data/lib/xcode/deploy/testflight.rb +32 -27
  22. data/lib/xcode/deploy/web_assets.rb +39 -0
  23. data/lib/xcode/info_plist.rb +16 -0
  24. data/lib/xcode/keychain.rb +33 -10
  25. data/lib/xcode/platform.rb +65 -0
  26. data/lib/xcode/project.rb +7 -3
  27. data/lib/xcode/provisioning_profile.rb +38 -2
  28. data/lib/xcode/scheme.rb +44 -17
  29. data/lib/xcode/shell/command.rb +79 -5
  30. data/lib/xcode/terminal_output.rb +116 -0
  31. data/lib/xcode/test/formatters/junit_formatter.rb +7 -2
  32. data/lib/xcode/test/formatters/stdout_formatter.rb +34 -25
  33. data/lib/xcode/test/parsers/kif_parser.rb +87 -0
  34. data/lib/xcode/test/parsers/ocunit_parser.rb +3 -3
  35. data/lib/xcode/version.rb +1 -1
  36. data/lib/xcode/workspace.rb +13 -5
  37. data/lib/xcoder.rb +33 -31
  38. data/spec/TestProject/TestProject.xcodeproj/project.pbxproj +1627 -1015
  39. data/spec/TestWorkspace.xcworkspace/contents.xcworkspacedata +7 -0
  40. data/spec/builder_spec.rb +87 -71
  41. data/spec/deploy_spec.rb +63 -0
  42. data/spec/ocunit_parser_spec.rb +1 -1
  43. data/xcoder.gemspec +3 -1
  44. metadata +95 -19
  45. data/lib/xcode/buildfile.rb +0 -101
  46. data/lib/xcode/shell.rb +0 -26
  47. data/spec/deploy_testflight_spec.rb +0 -27
@@ -1,6 +1,13 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <Workspace
3
3
  version = "1.0">
4
+ <Group
5
+ location = "container:"
6
+ name = "Workspace Level Group">
7
+ <FileRef
8
+ location = "group:../README.md">
9
+ </FileRef>
10
+ </Group>
4
11
  <FileRef
5
12
  location = "group:TestProject/TestProject.xcodeproj">
6
13
  </FileRef>
@@ -1,7 +1,11 @@
1
1
  require_relative 'spec_helper'
2
2
 
3
- describe Xcode::Builder do
4
-
3
+ RSpec.configure do |config|
4
+ config.mock_with :rspec
5
+ end
6
+
7
+ describe Xcode::Builder do
8
+
5
9
  context "when using a builder built from a configuration" do
6
10
 
7
11
  let(:configuration) { Xcode.project('TestProject').target('TestProject').config('Debug') }
@@ -9,44 +13,44 @@ describe Xcode::Builder do
9
13
  let(:subject) { configuration.builder }
10
14
 
11
15
  describe "#build" do
12
-
13
- let(:default_build_parameters) do
16
+
17
+ let(:default_build_parameters) do
14
18
  cmd = Xcode::Shell::Command.new "xcodebuild"
19
+ cmd << "-sdk #{configuration.target.project.sdk}"
20
+ cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/\""
21
+ cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/Products/\""
15
22
  cmd << "-project \"#{configuration.target.project.path}\""
16
- cmd << "-target \"#{configuration.target.name}\""
23
+ cmd << "-target \"#{configuration.target.name}\""
17
24
  cmd << "-config \"#{configuration.name}\""
18
- cmd << "-sdk #{configuration.target.project.sdk}"
19
- cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
20
- cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
21
25
  cmd
22
26
  end
23
-
27
+
24
28
  let(:macosx_build_parameters) do
25
29
  cmd = Xcode::Shell::Command.new "xcodebuild"
30
+ cmd << "-sdk macosx10.7"
26
31
  cmd << "-project \"#{configuration.target.project.path}\""
27
- cmd << "-target \"#{configuration.target.name}\""
32
+ cmd << "-target \"#{configuration.target.name}\""
28
33
  cmd << "-config \"#{configuration.name}\""
29
- cmd << "-sdk macosx10.7"
30
- cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
31
- cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
34
+ cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/\""
35
+ cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/Products/\""
32
36
  cmd
33
37
  end
34
38
 
35
39
  it "should build the project with the default parameters" do
36
- Xcode::Shell.should_receive(:execute).with(default_build_parameters,true)
40
+ PTY.stub(:spawn).with(default_build_parameters.to_s)
37
41
  subject.build
38
42
  end
39
-
43
+
40
44
  it "should allow the override of the sdk" do
41
- Xcode::Shell.should_receive(:execute).with(macosx_build_parameters, true)
45
+ PTY.stub(:spawn).with(macosx_build_parameters.to_s)
42
46
  subject.build :sdk => 'macosx10.7'
43
47
  end
44
-
48
+
45
49
  end
46
-
50
+
47
51
  describe "#testflight" do
48
-
49
- # let(:testflight_parameters) do
52
+
53
+ # let(:testflight_parameters) do
50
54
  # ['curl',
51
55
  # "--proxy http://proxyhost:8080",
52
56
  # "-X POST http://testflightapp.com/api/builds.json",
@@ -58,144 +62,156 @@ describe Xcode::Builder do
58
62
  # "-F notify=True",
59
63
  # "-F distribution_lists='List1,List2'"]
60
64
  # end
61
-
62
- it "should upload ipa and dsym to testflight" do
65
+
66
+ it "should upload ipa and dsym to testflight" do
63
67
  subject.build.package
64
-
65
- result = subject.testflight("api_token", "team_token") do |tf|
66
- tf.should_receive(:upload).with(subject.ipa_path, subject.dsym_zip_path).and_return('result')
67
- tf.proxy = "http://proxyhost:8080"
68
- tf.notes = "some notes"
69
- tf.lists << "List1"
70
- tf.lists << "List2"
71
- end
72
-
68
+ testflight = nil
69
+ result = subject.deploy(:testflight,
70
+ :api_token => "api_token",
71
+ :team_token => "team_token",
72
+ # :proxy => "http://proxyhost:8080",
73
+ :notes => "some notes",
74
+ :lists => ["List1", "List2"]) do |tf|
75
+ testflight = tf
76
+ tf.should_receive(:deploy).and_return('result')
77
+ end
73
78
  result.should == 'result'
79
+ testflight.should_not==nil
80
+ testflight.api_token.should=="api_token"
81
+ testflight.team_token.should=="team_token"
82
+ testflight.builder.should==subject
83
+ testflight.lists.should==["List1", "List2"]
84
+ testflight.notes.should=="some notes"
74
85
  end
75
86
  end
76
-
87
+
77
88
  describe "#test" do
78
-
89
+
79
90
  let(:configuration) do
80
91
  Xcode.project('TestProject').target('LogicTests').config('Debug')
81
92
  end
82
-
93
+
83
94
  let(:iphonesimulator_test_parameters) do
84
95
  cmd = Xcode::Shell::Command.new "xcodebuild"
96
+ cmd << "-sdk iphonesimulator"
85
97
  cmd << "-project \"#{configuration.target.project.path}\""
86
- cmd << "-target \"#{configuration.target.name}\""
98
+ cmd << "-target \"#{configuration.target.name}\""
87
99
  cmd << "-config \"#{configuration.name}\""
88
- cmd << "-sdk iphonesimulator"
89
- cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
90
- cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
100
+ cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/\""
101
+ cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/Products/\""
91
102
  cmd.env["TEST_AFTER_BUILD"]="YES"
103
+ cmd.env["ONLY_ACTIVE_ARCH"]="NO"
92
104
  cmd
93
105
  end
94
-
106
+
95
107
  let(:macosx_test_parameters) do
96
108
  cmd = Xcode::Shell::Command.new "xcodebuild"
109
+ cmd << "-sdk macosx10.7"
97
110
  cmd << "-project \"#{configuration.target.project.path}\""
98
- cmd << "-target \"#{configuration.target.name}\""
111
+ cmd << "-target \"#{configuration.target.name}\""
99
112
  cmd << "-config \"#{configuration.name}\""
100
- cmd << "-sdk macosx10.7"
101
- cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
102
- cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
113
+ cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/\""
114
+ cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/Products/\""
103
115
  cmd.env["TEST_AFTER_BUILD"]="YES"
116
+ cmd.env["ONLY_ACTIVE_ARCH"]="NO"
104
117
  cmd
105
118
  end
106
-
107
-
119
+
120
+
108
121
  it "should be able to run the test target on iphonesimulator" do
109
- Xcode::Shell.should_receive(:execute).with(iphonesimulator_test_parameters, false)
122
+ PTY.stub(:spawn).with(iphonesimulator_test_parameters.to_s)
110
123
  subject.test :sdk => 'iphonesimulator'
111
124
  end
112
125
 
113
126
  it "should allow the override of the sdk" do
114
- Xcode::Shell.should_receive(:execute).with(macosx_test_parameters, false)
127
+ PTY.stub(:spawn).with(macosx_test_parameters.to_s)
115
128
  subject.test :sdk => 'macosx10.7'
116
129
  end
117
-
130
+
118
131
  it "should not exit when test failed" do
119
- Xcode::Shell.stub(:execute)
132
+ PTY.stub(:spawn)
133
+
120
134
  fake_parser = stub(:parser)
121
135
  fake_parser.stub(:failed? => true)
122
- fake_parser.stub(:flush)
136
+ fake_parser.stub(:close)
123
137
  Xcode::Test::Parsers::OCUnitParser.stub(:new => fake_parser)
124
138
  subject.test
125
139
  end
126
-
140
+
127
141
  end
128
142
 
129
143
  describe "#clean" do
130
144
 
131
145
  let(:default_clean_parameters) do
132
146
  cmd = Xcode::Shell::Command.new "xcodebuild"
147
+ cmd << "-sdk iphoneos"
133
148
  cmd << "-project \"#{configuration.target.project.path}\""
134
- cmd << "-target \"#{configuration.target.name}\""
149
+ cmd << "-target \"#{configuration.target.name}\""
135
150
  cmd << "-config \"#{configuration.name}\""
136
- cmd << "-sdk iphoneos"
137
151
  cmd << "clean"
138
- cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
139
- cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/build/\""
152
+ cmd.env["OBJROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/\""
153
+ cmd.env["SYMROOT"]="\"#{File.dirname(configuration.target.project.path)}/Build/Products/\""
140
154
  cmd
141
155
  end
142
156
 
143
157
 
144
158
  it "should clean the project with the default parameter" do
145
- Xcode::Shell.should_receive(:execute).with(default_clean_parameters, true)
159
+ PTY.stub(:spawn).with(default_clean_parameters.to_s)
146
160
  subject.clean
147
161
  end
148
162
 
149
163
  end
150
164
 
151
165
  end
152
-
166
+
153
167
  context "when using a builder built from a scheme" do
154
168
 
155
169
  let(:scheme) { Xcode.project('TestProject').scheme('TestProject') }
156
-
170
+
157
171
  let(:subject) { scheme.builder }
158
172
 
159
173
  describe "#build" do
160
-
174
+
161
175
  let(:default_build_parameters) do
162
176
  cmd = Xcode::Shell::Command.new "xcodebuild"
177
+ cmd << "-sdk iphoneos"
163
178
  cmd << "-project \"#{scheme.build_targets.last.project.path}\""
164
179
  cmd << "-scheme \"#{scheme.name}\""
165
- cmd << "-sdk iphoneos"
166
- cmd.env["OBJROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/build/\""
167
- cmd.env["SYMROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/build/\""
180
+ cmd << "-configuration \"Release\""
181
+ cmd.env["OBJROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/Build/\""
182
+ cmd.env["SYMROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/Build/Products/\""
168
183
  cmd
169
184
  end
170
185
 
171
186
  it "should build the project with the default parameters" do
172
- Xcode::Shell.should_receive(:execute).with(default_build_parameters, true)
187
+ PTY.stub(:spawn).with(default_build_parameters.to_s)
173
188
  subject.build
174
189
  end
175
-
190
+
176
191
  end
177
-
192
+
178
193
  describe "#clean" do
179
194
 
180
195
  let(:default_clean_parameters) do
181
196
  cmd = Xcode::Shell::Command.new "xcodebuild"
197
+ cmd << "-sdk iphoneos"
182
198
  cmd << "-project \"#{scheme.build_targets.last.project.path}\""
183
199
  cmd << "-scheme \"#{scheme.name}\""
184
- cmd << "-sdk iphoneos"
200
+ cmd << "-configuration \"Release\""
185
201
  cmd << "clean"
186
- cmd.env["OBJROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/build/\""
187
- cmd.env["SYMROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/build/\""
202
+ cmd.env["OBJROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/Build/\""
203
+ cmd.env["SYMROOT"]="\"#{File.dirname(scheme.build_targets.last.project.path)}/Build/Products/\""
188
204
  cmd
189
205
  end
190
206
 
191
207
 
192
208
  it "should clean the project with the default parameter" do
193
- Xcode::Shell.should_receive(:execute).with(default_clean_parameters, true)
209
+ PTY.stub(:spawn).with(default_clean_parameters.to_s)
194
210
  subject.clean
195
211
  end
196
212
 
197
213
  end
198
214
 
199
215
  end
200
-
201
- end
216
+
217
+ end
@@ -0,0 +1,63 @@
1
+ require_relative 'spec_helper'
2
+ require 'ostruct'
3
+ require 'xcode/deploy/testflight'
4
+ require 'xcode/deploy/web_assets'
5
+ require 'xcode/deploy/ftp'
6
+ require 'xcode/deploy/ssh'
7
+
8
+ describe Xcode::Deploy do
9
+
10
+ let :builder do
11
+ OpenStruct.new(
12
+ :ipa_path => 'ipa path',
13
+ :dsym_zip_path => 'dsym path',
14
+ :bundle_version => '1.0',
15
+ :bundle_identifier => 'test.bunlde.identifier'
16
+ )
17
+ end
18
+
19
+ describe Xcode::Deploy::WebAssets do
20
+ it "should generate the assets" do
21
+ Xcode::Deploy::WebAssets.generate builder, 'http://example.com/base-url' do |dir|
22
+ File.exists?("#{dir}/index.html").should == true
23
+ File.exists?("#{dir}/manifest.plist").should == true
24
+
25
+ # TODO: more tests
26
+ end
27
+ end
28
+ end
29
+
30
+ describe Xcode::Deploy::Ftp do
31
+ # TODO: tests!
32
+ end
33
+
34
+ describe Xcode::Deploy::Ssh do
35
+ # TODO: tests!
36
+ end
37
+
38
+ describe Xcode::Deploy::Testflight do
39
+
40
+ let(:testflight) do
41
+ Xcode::Deploy::Testflight.new(builder, {:api_token => 'api token', :team_token => 'team token' })
42
+ end
43
+
44
+ it "should be configured with api and team token" do
45
+ testflight.api_token.should == 'api token'
46
+ testflight.team_token.should == 'team token'
47
+ end
48
+
49
+ it "should call curl with correct bulld paths" do
50
+ PTY.stub(:spawn).with do |cmd, &block|
51
+ cmd.should =~/^curl/
52
+ cmd.should =~/-F file=@"ipa path"/
53
+ cmd.should =~/-F dsym=@"dsym path"/
54
+ cmd.should =~/-F api_token='api token'/
55
+ cmd.should =~/-F team_token='team token'/
56
+ end
57
+
58
+ testflight.deploy
59
+ # response['response'].should == 'ok'
60
+ end
61
+ end
62
+
63
+ end
@@ -119,7 +119,7 @@ describe Xcode::Test::Parsers::OCUnitParser do
119
119
  parser << "/Developer/Tools/RunPlatformUnitTests.include: line 415: 32225 Bus error: 10 \"${THIN_TEST_RIG}\" \"${OTHER_TEST_FLAGS}\" \"${TEST_BUNDLE_PATH}\""
120
120
  parser << "/Developer/Tools/RunPlatformUnitTests.include:451: error: Test rig '/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/usr/bin/otest' exited abnormally with code 138 (it may have crashed)."
121
121
 
122
- parser.flush
122
+ parser.close
123
123
 
124
124
  report = parser.report
125
125
 
@@ -18,9 +18,11 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_runtime_dependency "json"
21
+ s.add_runtime_dependency "multi_json"
22
22
  s.add_runtime_dependency "plist"
23
23
  s.add_runtime_dependency "nokogiri"
24
24
  s.add_runtime_dependency "builder"
25
25
  s.add_runtime_dependency "rest-client"
26
+ s.add_runtime_dependency "colorize"
27
+ s.add_runtime_dependency "aws-sdk"
26
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.18
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-12-05 00:00:00.000000000Z
13
+ date: 2013-07-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: json
17
- requirement: &70353485685920 !ruby/object:Gem::Requirement
16
+ name: multi_json
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70353485685920
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: plist
28
- requirement: &70353473165820 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ! '>='
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: '0'
34
39
  type: :runtime
35
40
  prerelease: false
36
- version_requirements: *70353473165820
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: nokogiri
39
- requirement: &70353473165400 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,10 +54,15 @@ dependencies:
44
54
  version: '0'
45
55
  type: :runtime
46
56
  prerelease: false
47
- version_requirements: *70353473165400
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: builder
50
- requirement: &70353473164980 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ! '>='
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: '0'
56
71
  type: :runtime
57
72
  prerelease: false
58
- version_requirements: *70353473164980
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: rest-client
61
- requirement: &70353473164560 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ! '>='
@@ -66,29 +86,70 @@ dependencies:
66
86
  version: '0'
67
87
  type: :runtime
68
88
  prerelease: false
69
- version_requirements: *70353473164560
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: colorize
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: aws-sdk
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
70
127
  description: Provides a ruby based object-model for parsing project structures and
71
128
  invoking builds
72
129
  email:
73
130
  - ray@wirestorm.net
74
131
  - franklin.webber@gmail.com
75
- executables: []
132
+ executables:
133
+ - xcoder
76
134
  extensions: []
77
135
  extra_rdoc_files: []
78
136
  files:
79
137
  - .gitignore
138
+ - .rbenv-version
80
139
  - .rvmrc
81
140
  - Gemfile
82
141
  - Guardfile
83
142
  - README.md
84
143
  - Rakefile
144
+ - bin/xcoder
85
145
  - lib/xcode/build_file.rb
86
146
  - lib/xcode/build_phase.rb
87
147
  - lib/xcode/builder.rb
88
148
  - lib/xcode/builder/base_builder.rb
149
+ - lib/xcode/builder/build_parser.rb
89
150
  - lib/xcode/builder/project_target_config_builder.rb
90
151
  - lib/xcode/builder/scheme_builder.rb
91
- - lib/xcode/buildfile.rb
152
+ - lib/xcode/buildspec.rb
92
153
  - lib/xcode/configuration.rb
93
154
  - lib/xcode/configuration_list.rb
94
155
  - lib/xcode/configuration_owner.rb
@@ -105,25 +166,34 @@ files:
105
166
  - lib/xcode/core_ext/fixnum.rb
106
167
  - lib/xcode/core_ext/hash.rb
107
168
  - lib/xcode/core_ext/string.rb
169
+ - lib/xcode/deploy/ftp.rb
170
+ - lib/xcode/deploy/kickfolio.rb
171
+ - lib/xcode/deploy/s3.rb
172
+ - lib/xcode/deploy/ssh.rb
173
+ - lib/xcode/deploy/templates/index.rhtml
174
+ - lib/xcode/deploy/templates/manifest.rhtml
108
175
  - lib/xcode/deploy/testflight.rb
176
+ - lib/xcode/deploy/web_assets.rb
109
177
  - lib/xcode/file_reference.rb
110
178
  - lib/xcode/group.rb
111
179
  - lib/xcode/info_plist.rb
112
180
  - lib/xcode/keychain.rb
113
181
  - lib/xcode/parsers/plutil_project_parser.rb
182
+ - lib/xcode/platform.rb
114
183
  - lib/xcode/project.rb
115
184
  - lib/xcode/project_reference.rb
116
185
  - lib/xcode/provisioning_profile.rb
117
186
  - lib/xcode/registry.rb
118
187
  - lib/xcode/resource.rb
119
188
  - lib/xcode/scheme.rb
120
- - lib/xcode/shell.rb
121
189
  - lib/xcode/shell/command.rb
122
190
  - lib/xcode/simple_identifier_generator.rb
123
191
  - lib/xcode/target.rb
124
192
  - lib/xcode/target_dependency.rb
193
+ - lib/xcode/terminal_output.rb
125
194
  - lib/xcode/test/formatters/junit_formatter.rb
126
195
  - lib/xcode/test/formatters/stdout_formatter.rb
196
+ - lib/xcode/test/parsers/kif_parser.rb
127
197
  - lib/xcode/test/parsers/ocunit_parser.rb
128
198
  - lib/xcode/test/report.rb
129
199
  - lib/xcode/test/report/suite_result.rb
@@ -165,7 +235,7 @@ files:
165
235
  - spec/builder_spec.rb
166
236
  - spec/configuration_list_spec.rb
167
237
  - spec/configuration_spec.rb
168
- - spec/deploy_testflight_spec.rb
238
+ - spec/deploy_spec.rb
169
239
  - spec/group_spec.rb
170
240
  - spec/integration/builder_spec.rb
171
241
  - spec/integration/cedar_install_spec.rb
@@ -196,15 +266,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
196
266
  - - ! '>='
197
267
  - !ruby/object:Gem::Version
198
268
  version: '0'
269
+ segments:
270
+ - 0
271
+ hash: -338592887779862052
199
272
  required_rubygems_version: !ruby/object:Gem::Requirement
200
273
  none: false
201
274
  requirements:
202
275
  - - ! '>='
203
276
  - !ruby/object:Gem::Version
204
277
  version: '0'
278
+ segments:
279
+ - 0
280
+ hash: -338592887779862052
205
281
  requirements: []
206
282
  rubyforge_project: xcoder
207
- rubygems_version: 1.8.6
283
+ rubygems_version: 1.8.24
208
284
  signing_key:
209
285
  specification_version: 3
210
286
  summary: Ruby wrapper around xcodebuild, xcrun, agvtool and pbxproj files
@@ -240,7 +316,7 @@ test_files:
240
316
  - spec/builder_spec.rb
241
317
  - spec/configuration_list_spec.rb
242
318
  - spec/configuration_spec.rb
243
- - spec/deploy_testflight_spec.rb
319
+ - spec/deploy_spec.rb
244
320
  - spec/group_spec.rb
245
321
  - spec/integration/builder_spec.rb
246
322
  - spec/integration/cedar_install_spec.rb