ios-box 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ gem "plist"
7
+ gem "pbxproject"
8
+
9
+ # Add dependencies to develop your gem here.
10
+ # Include everything needed to run rake, tests, features, etc.
11
+ group :development do
12
+ gem "rspec", "~> 2.3.0"
13
+ gem "bundler", "~> 1.0.0"
14
+ gem "jeweler", "~> 1.5.2"
15
+ gem "rcov", ">= 0"
16
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,32 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.1.2)
5
+ git (1.2.5)
6
+ jeweler (1.5.2)
7
+ bundler (~> 1.0.0)
8
+ git (>= 1.2.5)
9
+ rake
10
+ pbxproject (0.1.0)
11
+ plist (3.1.0)
12
+ rake (0.8.7)
13
+ rcov (0.9.9)
14
+ rspec (2.3.0)
15
+ rspec-core (~> 2.3.0)
16
+ rspec-expectations (~> 2.3.0)
17
+ rspec-mocks (~> 2.3.0)
18
+ rspec-core (2.3.1)
19
+ rspec-expectations (2.3.0)
20
+ diff-lcs (~> 1.1.2)
21
+ rspec-mocks (2.3.0)
22
+
23
+ PLATFORMS
24
+ ruby
25
+
26
+ DEPENDENCIES
27
+ bundler (~> 1.0.0)
28
+ jeweler (~> 1.5.2)
29
+ pbxproject
30
+ plist
31
+ rcov
32
+ rspec (~> 2.3.0)
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Mikko Kokkonen
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,41 @@
1
+ IosBox
2
+ ======
3
+
4
+ IosBox is collection of Rake Tasks that makes developing iOS apps more easy.
5
+ It includes rake tasks that take care of updating app Info.plist with proper
6
+ version information (e.g. build date, GIT hash, etc).
7
+ Further version will integrate deployment options, such as deploy beta versions
8
+ to TestFlight.
9
+
10
+ Installation
11
+ ============
12
+
13
+ Install `IosBox` gem if you haven't done yet so
14
+ $ gem install ios-box
15
+
16
+ Create in the root of your project folder `Rakefile` -file with following contents:
17
+
18
+ require 'ios-box'
19
+
20
+ IosBox::Tasks.new do |config|
21
+ config.target = "iosboxdev"
22
+ end
23
+
24
+ Integrate toolbox with your XCode project by executing following command:
25
+
26
+ $ rake iosbox:integrate
27
+
28
+ Notice! This command will modify your XCode project file and therefore can make your project to stop working.
29
+ Make sure you have proper backups done.
30
+
31
+ Usage
32
+ =====
33
+
34
+ Run `rake -T` in project folder to see available commands.
35
+
36
+ Copyright
37
+ =========
38
+
39
+ Copyright (c) 2011 Mikko Kokkonen. See LICENSE.txt for
40
+ further details.
41
+
data/Rakefile ADDED
@@ -0,0 +1,55 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "ios-box"
16
+ gem.homepage = "http://github.com/mikian/ios-box"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{Automates some common tasks in iOS development}
19
+ gem.description = %Q{ios-box offers automation and easy tasks for some most common tasks in iOS development.}
20
+ gem.email = "mikko.kokkonen@me.com"
21
+ gem.authors = ["Mikko Kokkonen"]
22
+
23
+ gem.files.include %w(lib/**/*.rb)
24
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
25
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
26
+ gem.add_runtime_dependency 'pbxproject'
27
+ gem.add_runtime_dependency 'plist'
28
+ gem.add_runtime_dependency 'grit'
29
+
30
+ gem.add_development_dependency 'rspec', '> 1.2.3'
31
+ end
32
+ Jeweler::RubygemsDotOrgTasks.new
33
+
34
+ require 'rspec/core'
35
+ require 'rspec/core/rake_task'
36
+ RSpec::Core::RakeTask.new(:spec) do |spec|
37
+ spec.pattern = FileList['spec/**/*_spec.rb']
38
+ end
39
+
40
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
41
+ spec.pattern = 'spec/**/*_spec.rb'
42
+ spec.rcov = true
43
+ end
44
+
45
+ task :default => :spec
46
+
47
+ require 'rake/rdoctask'
48
+ Rake::RDocTask.new do |rdoc|
49
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
50
+
51
+ rdoc.rdoc_dir = 'rdoc'
52
+ rdoc.title = "ios-box #{version}"
53
+ rdoc.rdoc_files.include('README*')
54
+ rdoc.rdoc_files.include('lib/**/*.rb')
55
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.0
data/ios-box.gemspec ADDED
@@ -0,0 +1,83 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{ios-box}
8
+ s.version = "0.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Mikko Kokkonen"]
12
+ s.date = %q{2011-04-23}
13
+ s.description = %q{ios-box offers automation and easy tasks for some most common tasks in iOS development.}
14
+ s.email = %q{mikko.kokkonen@me.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.md",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "ios-box.gemspec",
29
+ "lib/ios-box.rb",
30
+ "lib/ios_box.rb",
31
+ "spec/ios-box_spec.rb",
32
+ "spec/spec_helper.rb"
33
+ ]
34
+ s.homepage = %q{http://github.com/mikian/ios-box}
35
+ s.licenses = ["MIT"]
36
+ s.require_paths = ["lib"]
37
+ s.rubygems_version = %q{1.6.2}
38
+ s.summary = %q{Automates some common tasks in iOS development}
39
+ s.test_files = [
40
+ "spec/ios-box_spec.rb",
41
+ "spec/spec_helper.rb"
42
+ ]
43
+
44
+ if s.respond_to? :specification_version then
45
+ s.specification_version = 3
46
+
47
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
+ s.add_runtime_dependency(%q<plist>, [">= 0"])
49
+ s.add_runtime_dependency(%q<pbxproject>, [">= 0"])
50
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
51
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
52
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
53
+ s.add_development_dependency(%q<rcov>, [">= 0"])
54
+ s.add_runtime_dependency(%q<pbxproject>, [">= 0"])
55
+ s.add_runtime_dependency(%q<plist>, [">= 0"])
56
+ s.add_runtime_dependency(%q<grit>, [">= 0"])
57
+ s.add_development_dependency(%q<rspec>, ["> 1.2.3"])
58
+ else
59
+ s.add_dependency(%q<plist>, [">= 0"])
60
+ s.add_dependency(%q<pbxproject>, [">= 0"])
61
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
62
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
63
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
64
+ s.add_dependency(%q<rcov>, [">= 0"])
65
+ s.add_dependency(%q<pbxproject>, [">= 0"])
66
+ s.add_dependency(%q<plist>, [">= 0"])
67
+ s.add_dependency(%q<grit>, [">= 0"])
68
+ s.add_dependency(%q<rspec>, ["> 1.2.3"])
69
+ end
70
+ else
71
+ s.add_dependency(%q<plist>, [">= 0"])
72
+ s.add_dependency(%q<pbxproject>, [">= 0"])
73
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
74
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
75
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
76
+ s.add_dependency(%q<rcov>, [">= 0"])
77
+ s.add_dependency(%q<pbxproject>, [">= 0"])
78
+ s.add_dependency(%q<plist>, [">= 0"])
79
+ s.add_dependency(%q<grit>, [">= 0"])
80
+ s.add_dependency(%q<rspec>, ["> 1.2.3"])
81
+ end
82
+ end
83
+
data/lib/ios-box.rb ADDED
@@ -0,0 +1 @@
1
+ require 'ios_box'
data/lib/ios_box.rb ADDED
@@ -0,0 +1,239 @@
1
+ require 'rake/tasklib'
2
+ require 'pbxproject'
3
+ require 'yaml'
4
+ require 'ostruct'
5
+ require 'grit'
6
+ require 'plist'
7
+
8
+ module IosBox
9
+ class Tasks < ::Rake::TaskLib
10
+ def initialize(namespace = :iosbox, &block)
11
+ @config = Config.new(
12
+ :configuration => "Adhoc",
13
+ :build_style => :months,
14
+ :bundle_version_style => "V.b",
15
+ :buildCache => ".buildCache"
16
+ )
17
+ yield @config
18
+
19
+ # Load build cache
20
+ @buildCache = BuildCache.load(@config.buildCache) || BuildCache.new
21
+ @namespace = namespace
22
+ define
23
+ end
24
+
25
+ class BuildCache
26
+ def self.load file = ".buildCache"
27
+ return unless File.file?(file)
28
+ YAML.load_file(file)
29
+ end
30
+
31
+ def save file = ".buildCache"
32
+ File.open(file, 'w') { |io| YAML.dump(self, io) }
33
+ end
34
+ end
35
+
36
+ class Config < OpenStruct
37
+ def initialize args
38
+ super
39
+ self.plist = File.join(ENV['PROJECT_DIR'] || '', ENV['INFOPLIST_FILE'] || '')
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def define
46
+ # General namespace
47
+ namespace(@namespace) do
48
+ desc "Integrates IosBox to XCode build phases"
49
+ task :integrate do
50
+ # Get our xcodeproject from config or find it
51
+ xcode = @config.project || Dir["*.xcodeproj"].first
52
+
53
+ raise "Cannot find project.pbxproj in #{xcode}" unless File.file? "#{xcode}/project.pbxproj"
54
+ pbx = PBXProject::PBXProject.new :file => "#{xcode}/project.pbxproj"
55
+ pbx.parse
56
+
57
+ # Add build:prepare task to build phases
58
+ initPhase = PBXProject::PBXTypes::PBXShellScriptBuildPhase.new :shellPath => '/bin/sh', :shellScript => "\"(cd $PROJECT_DIR; rake #{@namespace}:build:prepare)\""
59
+ pbx.add_item initPhase
60
+
61
+ # Add to target
62
+ target = pbx.find_item :name => @config.target, :type => PBXProject::PBXTypes::PBXNativeTarget
63
+ target.add_build_phase initPhase, 0
64
+
65
+ # Save our project file
66
+ pbx.write_to :file => "#{xcode}/project.pbxproj"
67
+ end
68
+
69
+ # Version mungle
70
+ desc "Returns current version string"
71
+ task :version do
72
+ @plist = Plist::parse_xml(@config.plist)
73
+ @config._short_version = @plist["CFBundleShortVersionString"]
74
+ puts " Short Version: #{@config._short_version}"
75
+ end
76
+
77
+ namespace :version do
78
+ @ver = {:major => nil, :minor => nil, :patch => nil}
79
+ def _prepare
80
+ @git = Grit::Repo.new("#{ENV['PROJECT_DIR']}")
81
+ @config._commit = @git.commit("HEAD").id_abbrev
82
+
83
+ @plist = Plist::parse_xml(@config.plist)
84
+ if (m = @plist["CFBundleShortVersionString"].match(/(\d+)\.(\d+)(\.(\d+))?/))
85
+ @ver[:major] = Integer(m[1]) if m[1]
86
+ @ver[:minor] = Integer(m[2]) if m[2]
87
+ @ver[:patch] = Integer(m[4]) if m[4]
88
+ end
89
+ end
90
+
91
+ def _write_back
92
+ @plist = Plist::parse_xml(@config.plist) unless @plist
93
+ ver_str = "%d.%d%s" % [ @ver[:major], @ver[:minor], @ver[:patch] ? ".#{@ver[:patch]}" : "" ]
94
+ @plist["CFBundleShortVersionString"] = ver_str
95
+ @plist.save_plist(@config.plist)
96
+ end
97
+
98
+ desc "Generates Bundle Version"
99
+ task :bundlever => ["version", "version:buildnum"] do
100
+ # Build our components
101
+ comp = {
102
+ "M" => @ver[:major],
103
+ "m" => @ver[:minor],
104
+ "p" => @ver[:patch],
105
+ "P" => @ver[:patch] ? ".#{@ver[:patch]}" : "",
106
+ "b" => @config._build_number,
107
+ "S" => @config._short_version,
108
+ "V" => @ver[:major] * 10 + @ver[:minor],
109
+ "v" => @ver[:major] * 100 + @ver[:minor] * 10 + (@ver[:patch] ? @ver[:patch] : 0),
110
+ "g" => @config._commit,
111
+ }
112
+ compre = Regexp.new("[" + comp.keys.join("") + "]")
113
+
114
+ style = case @config.bundle_version_style
115
+ when :short_version
116
+ "S"
117
+ when :buildnum
118
+ "b"
119
+ when :githash
120
+ "g"
121
+ else
122
+ @config.bundle_version_style
123
+ end
124
+
125
+ @config._bundle_version = style.gsub(compre) do |s|
126
+ comp[s]
127
+ end
128
+
129
+ puts "Bundle Version: #{@config._bundle_version}"
130
+ end
131
+
132
+ desc "Generate new build number, depending on selected scheme"
133
+ task :buildnum do
134
+ _prepare
135
+ buildnum = case @config.build_style
136
+ when :months
137
+ # Open repository and find out
138
+ prj_begin = Time.now
139
+ if (@config.first_revision)
140
+ prj_begin = @git.commit(@config.first_revision).authored_date
141
+ elsif (@config.first_date)
142
+ prj_begin = @config.first_date
143
+ else
144
+ prj_begin = @git.log.last.authored_date
145
+ end
146
+
147
+ months = ((Time.now.month + 12 * Time.now.year) - (prj_begin.month + 12 * prj_begin.year))
148
+ "%d%02d" % [months, Time.now.day]
149
+ end
150
+
151
+ @config._build_number = buildnum
152
+ puts " Build number: #{buildnum}"
153
+ end
154
+
155
+ desc "Writes exact version number"
156
+ task :write, :version do |t, args|
157
+ @plist = Plist::parse_xml(@config.plist)
158
+ @plist["CFBundleShortVersionString"] = args[:version]
159
+ @plist.save_plist(@config.plist)
160
+ puts "Short Version: #{args[:version]}"
161
+ end
162
+
163
+ desc "Bumps version up"
164
+ task :bump do
165
+ _prepare
166
+
167
+ # if we have patch, bump it up
168
+ if (@ver[:patch])
169
+ @ver[:patch] += 1
170
+ elsif (@ver[:minor])
171
+ @ver[:minor] += 1
172
+ else
173
+ @ver[:major] += 1
174
+ end
175
+ _write_back
176
+ puts "Bumped Version: " + "%d.%d%s" % [ @ver[:major], @ver[:minor], @ver[:patch] ? ".#{@ver[:patch]}" : "" ]
177
+ end
178
+
179
+ namespace :bump do
180
+ desc "Bumps major version up"
181
+ task :major do
182
+ _prepare
183
+ @ver[:major] = @ver[:major] ? @ver[:major] + 1 : 1
184
+ @ver[:minor] = 0
185
+ @ver[:patch] = nil
186
+ _write_back
187
+ puts "Bumped Version: " + "%d.%d%s" % [ @ver[:major], @ver[:minor], @ver[:patch] ? ".#{@ver[:patch]}" : "" ]
188
+ end
189
+
190
+ desc "Bumps minor version up"
191
+ task :minor do
192
+ _prepare
193
+ @ver[:minor] = @ver[:minor] ? @ver[:minor] + 1 : 1
194
+ @ver[:patch] = nil
195
+ _write_back
196
+ puts "Bumped Version: " + "%d.%d%s" % [ @ver[:major], @ver[:minor], @ver[:patch] ? ".#{@ver[:patch]}" : "" ]
197
+ end
198
+
199
+ desc "Bumps patch version up"
200
+ task :patch do
201
+ _prepare
202
+ @ver[:patch] = @ver[:patch] ? @ver[:patch] + 1 : 1
203
+ _write_back
204
+ puts "Bumped Version: " + "%d.%d%s" % [ @ver[:major], @ver[:minor], @ver[:patch] ? ".#{@ver[:patch]}" : "" ]
205
+ end
206
+ end
207
+
208
+ end
209
+
210
+ namespace :build do
211
+
212
+ desc "Prepares build environment"
213
+ task :prepare => ["version:bundlever"] do
214
+ # Save our environment variables
215
+ ["BUILT_PRODUCTS_DIR", "BUILD_DIR", "CONFIGURATION", "CONFIGURATION_BUILD_DIR",
216
+ "PROJECT_DIR", "INFOPLIST_FILE", "TARGET_NAME"].each { |v|
217
+ @buildCache.instance_variable_set("@#{v.downcase}", ENV[v])
218
+ }
219
+ @buildCache.save
220
+
221
+ # Save version info
222
+ product_plist = File.join(ENV['BUILT_PRODUCTS_DIR'], ENV['INFOPLIST_PATH'])
223
+ `/usr/bin/plutil -convert xml1 \"#{product_plist}\"`
224
+ pl = Plist::parse_xml(product_plist)
225
+ if (pl)
226
+ pl["CFBundleVersion"] = @config._bundle_version
227
+ pl["IBBuildNum"] = @config._build_number
228
+ pl["IBBuildDate"] = Time.new.strftime("%a %e %b %Y %H:%M:%S %Z %z")
229
+ pl["IBBuildType"] = ENV['CONFIGURATION']
230
+ pl["GCGitCommitHash"] = @config._commit # for hoptoadapp
231
+ pl.save_plist(product_plist)
232
+ end
233
+ `/usr/bin/plutil -convert binary1 \"#{product_plist}\"`
234
+ end
235
+ end
236
+ end
237
+ end
238
+ end
239
+ end
@@ -0,0 +1,8 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require 'rake'
3
+
4
+ describe "IosBox" do
5
+ it "should create build cache" do
6
+ IosBox::Tasks
7
+ end
8
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'ios-box'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ios-box
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.0
6
+ platform: ruby
7
+ authors:
8
+ - Mikko Kokkonen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-04-23 00:00:00 +09:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: plist
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: pbxproject
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: rspec
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.3.0
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: bundler
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: 1.0.0
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: jeweler
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 1.5.2
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: rcov
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: pbxproject
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: plist
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ type: :runtime
102
+ prerelease: false
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
105
+ name: grit
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: "0"
112
+ type: :runtime
113
+ prerelease: false
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
116
+ name: rspec
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">"
121
+ - !ruby/object:Gem::Version
122
+ version: 1.2.3
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: *id010
126
+ description: ios-box offers automation and easy tasks for some most common tasks in iOS development.
127
+ email: mikko.kokkonen@me.com
128
+ executables: []
129
+
130
+ extensions: []
131
+
132
+ extra_rdoc_files:
133
+ - LICENSE.txt
134
+ - README.md
135
+ files:
136
+ - .document
137
+ - .rspec
138
+ - Gemfile
139
+ - Gemfile.lock
140
+ - LICENSE.txt
141
+ - README.md
142
+ - Rakefile
143
+ - VERSION
144
+ - ios-box.gemspec
145
+ - lib/ios-box.rb
146
+ - lib/ios_box.rb
147
+ - spec/ios-box_spec.rb
148
+ - spec/spec_helper.rb
149
+ has_rdoc: true
150
+ homepage: http://github.com/mikian/ios-box
151
+ licenses:
152
+ - MIT
153
+ post_install_message:
154
+ rdoc_options: []
155
+
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ hash: -258283987276610379
164
+ segments:
165
+ - 0
166
+ version: "0"
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: "0"
173
+ requirements: []
174
+
175
+ rubyforge_project:
176
+ rubygems_version: 1.6.2
177
+ signing_key:
178
+ specification_version: 3
179
+ summary: Automates some common tasks in iOS development
180
+ test_files:
181
+ - spec/ios-box_spec.rb
182
+ - spec/spec_helper.rb