yolo 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,26 @@
1
+ require "calabash-cucumber"
2
+
3
+ module Yolo
4
+ module Tools
5
+ module Ios
6
+ module Calabash
7
+ def self.run(format = :junit, output_dir = "test-reports/cucumber")
8
+ IO.popen("cucumber --format #{format.to_s} --out #{output_dir}") do |io|
9
+ begin
10
+ while line = io.readline
11
+ begin
12
+ STDOUT << line
13
+ rescue StandardError => e
14
+ puts "Error from output buffer: #{e.inspect}"
15
+ puts e.backtrace
16
+ end
17
+ end
18
+ rescue EOFError
19
+ end
20
+ end
21
+ $?.exitstatus
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ require 'CFPropertyList'
2
+
3
+ module Yolo
4
+ module Tools
5
+ module Ios
6
+ class IPA
7
+ def self.generate(app_path,dsym_path,output_directory, &block)
8
+ formatter = Yolo::Formatters::ProgressFormatter.new
9
+ formatter.generating_ipa
10
+ ipa_name = app_path.split("/").last.split(".").first
11
+
12
+ unless File.directory?(output_directory)
13
+ FileUtils.mkdir_p(output_directory)
14
+ end
15
+
16
+ # make ipa
17
+ `/usr/bin/xcrun -sdk iphoneos PackageApplication -v #{app_path} -o #{output_directory}/#{ipa_name}.ipa`
18
+ # move dsym
19
+ FileUtils.cp_r(dsym_path, output_directory) if dsym_path
20
+ # move release notes
21
+ release_path = "#{Dir.pwd}/release_notes.md"
22
+ FileUtils.cp_r(release_path, output_directory) if File.exist?(release_path)
23
+
24
+ formatter.ipa_generated("#{output_directory}/#{ipa_name}.ipa")
25
+
26
+ block.call("#{output_directory}/#{ipa_name}.ipa") if block
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,34 @@
1
+ module Yolo
2
+ module Tools
3
+ module Ios
4
+ module ReleaseNotes
5
+ def self.generate(plist_path)
6
+ xcode = Yolo::Tools::Ios::Xcode.new
7
+ xcode.info_plist_path = plist_path
8
+ directory = Dir.pwd
9
+ time = Time.new
10
+
11
+ File.open("#{directory}/release_notes.md", 'w') {|f|
12
+ f.write("### Version\n- - -\n")
13
+ f.write("#{xcode.version_number} (#{xcode.build_number})\n\n")
14
+ f.write("### Change log\n- - -\n")
15
+ f.write("* No Changes\n\n")
16
+ f.write("### Fixes\n- - -\n")
17
+ f.write("* No Fixes\n\n")
18
+ f.write("### Notes\n- - -\n")
19
+ f.write("No Notes\n\n")
20
+ f.write("### Known issues\n- - -\n")
21
+ f.write("No Known issues\n\n")
22
+ f.write("### Date\n- - -\n")
23
+ f.write("#{time.day}/#{time.month}/#{time.year} - #{time.hour}:#{time.min}")
24
+ }
25
+
26
+ formatter = Yolo::Formatters::ProgressFormatter.new
27
+ formatter.notes_generated("#{directory}/release_notes.md")
28
+
29
+ `open #{directory}/release_notes.md`
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,51 @@
1
+ require 'CFPropertyList'
2
+
3
+ module Yolo
4
+ module Tools
5
+ module Ios
6
+ class Xcode
7
+
8
+ attr_accessor :prefs_plist_path
9
+ attr_accessor :info_plist_path
10
+
11
+ def initialize
12
+ self.prefs_plist_path = "#{user_directory}/Library/Preferences/com.apple.dt.Xcode.plist"
13
+ end
14
+
15
+ def user_directory
16
+ File.expand_path('~')
17
+ end
18
+
19
+ def prefs
20
+ plist = CFPropertyList::List.new(:file => prefs_plist_path)
21
+ CFPropertyList.native_types(plist.value)
22
+ end
23
+
24
+ def build_path
25
+ path = prefs["IDECustomDerivedDataLocation"]
26
+ path = "#{user_directory}/Library/Developer/Xcode/DerivedData" unless path
27
+ path
28
+ end
29
+
30
+ def info_plist
31
+ if info_plist_path
32
+ plist = CFPropertyList::List.new(:file => info_plist_path)
33
+ CFPropertyList.native_types(plist.value)
34
+ else
35
+ error = Yolo::Formatters::ErrorFormatter.new
36
+ error.info_plist_not_found
37
+ end
38
+ end
39
+
40
+ def build_number
41
+ info_plist["CFBundleVersion"]
42
+ end
43
+
44
+ def version_number
45
+ info_plist["CFBundleShortVersionString"]
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yolo
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.pre
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Alex Fish
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: xcodebuild-rb
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - '='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.2.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: ocunit2junit
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - '='
36
+ - !ruby/object:Gem::Version
37
+ version: '1.2'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: '1.2'
46
+ - !ruby/object:Gem::Dependency
47
+ name: activerecord
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: calabash-cucumber
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: TBD...
79
+ email: alex@alexefish.com
80
+ executables: []
81
+ extensions: []
82
+ extra_rdoc_files: []
83
+ files:
84
+ - Rakefile
85
+ - lib/yolo/config/config.yml
86
+ - lib/yolo/config/settings.rb
87
+ - lib/yolo/config.rb
88
+ - lib/yolo/deployment/base_deployer.rb
89
+ - lib/yolo/deployment/ota.rb
90
+ - lib/yolo/deployment.rb
91
+ - lib/yolo/formatters/error_formatter.rb
92
+ - lib/yolo/formatters/progress_formatter.rb
93
+ - lib/yolo/formatters.rb
94
+ - lib/yolo/history/history.yml
95
+ - lib/yolo/notify/email.rb
96
+ - lib/yolo/notify/ios/email.html
97
+ - lib/yolo/notify/ios/ota_email.rb
98
+ - lib/yolo/notify.rb
99
+ - lib/yolo/tasks/base_task.rb
100
+ - lib/yolo/tasks/ios/build.rb
101
+ - lib/yolo/tasks/ios/calabash.rb
102
+ - lib/yolo/tasks/ios/ocunit.rb
103
+ - lib/yolo/tasks/ios/release.rb
104
+ - lib/yolo/tasks.rb
105
+ - lib/yolo/tools/git.rb
106
+ - lib/yolo/tools/ios/calabash.rb
107
+ - lib/yolo/tools/ios/ipa.rb
108
+ - lib/yolo/tools/ios/release_notes.rb
109
+ - lib/yolo/tools/ios/xcode.rb
110
+ - lib/yolo/tools.rb
111
+ - lib/yolo.rb
112
+ - README.md
113
+ homepage: http://rubygems.org/gems/yolo
114
+ licenses: []
115
+ post_install_message:
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ required_rubygems_version: !ruby/object:Gem::Requirement
126
+ none: false
127
+ requirements:
128
+ - - ! '>'
129
+ - !ruby/object:Gem::Version
130
+ version: 1.3.1
131
+ requirements: []
132
+ rubyforge_project:
133
+ rubygems_version: 1.8.24
134
+ signing_key:
135
+ specification_version: 3
136
+ summary: YOLO!
137
+ test_files: []
138
+ has_rdoc: