framework-x-xcodeprojgen 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +12 -0
- data/Rakefile +45 -0
- data/TODO +8 -0
- data/bin/xcodeprojgen +14 -0
- data/lib/xcode.rb +56 -0
- data/lib/xcode/frameworks.rb +100 -0
- data/lib/xcode/iphone.rb +29 -0
- data/lib/xcode/iphone_build_configurations.rb +48 -0
- data/lib/xcode/pbx_build_file.rb +25 -0
- data/lib/xcode/pbx_build_phase.rb +25 -0
- data/lib/xcode/pbx_copy_files_build_phase.rb +7 -0
- data/lib/xcode/pbx_file_reference.rb +66 -0
- data/lib/xcode/pbx_formatter.rb +52 -0
- data/lib/xcode/pbx_frameworks_build_phase.rb +7 -0
- data/lib/xcode/pbx_group.rb +47 -0
- data/lib/xcode/pbx_native_target.rb +24 -0
- data/lib/xcode/pbx_proj.rb +21 -0
- data/lib/xcode/pbx_project.rb +29 -0
- data/lib/xcode/pbx_resources_build_phase.rb +7 -0
- data/lib/xcode/pbx_sources_build_phase.rb +7 -0
- data/lib/xcode/xc_build_configuration.rb +20 -0
- data/lib/xcode/xc_configuration_list.rb +20 -0
- data/lib/xcodeproj_gen.rb +140 -0
- data/test/acceptance/command_line_foundation_test.rb +33 -0
- data/test/acceptance/command_line_in_c_test.rb +33 -0
- data/test/acceptance/test_helper.rb +18 -0
- data/test/unit/test_helper.rb +13 -0
- data/test/unit/xcode/pbx_build_file_test.rb +18 -0
- data/test/unit/xcode/pbx_build_phase_test.rb +27 -0
- data/test/unit/xcode/pbx_file_reference_test.rb +74 -0
- data/test/unit/xcode/pbx_formatter_test.rb +35 -0
- data/test/unit/xcode/pbx_group_test.rb +25 -0
- data/test/unit/xcode/pbx_native_target_test.rb +13 -0
- data/test/unit/xcode/pbx_project_test.rb +21 -0
- data/test/unit/xcode/xc_build_configuration_test.rb +15 -0
- data/test/unit/xcode/xc_configuration_list_test.rb +21 -0
- data/test/unit/xcode_test.rb +7 -0
- metadata +89 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
BIN_DIR = File.expand_path(File.dirname(__FILE__) + "/../../bin")
|
2
|
+
EXAMPLES_DIR = File.expand_path(File.dirname(__FILE__) + "/../../examples")
|
3
|
+
LIB_DIR = File.expand_path(File.dirname(__FILE__) + "/../../lib")
|
4
|
+
|
5
|
+
require "fileutils"
|
6
|
+
|
7
|
+
require "test/unit"
|
8
|
+
|
9
|
+
Test::Unit::TestCase.class_eval do
|
10
|
+
def self.test(method, &block)
|
11
|
+
define_method "test_#{method}".gsub(/\W/,"_"), &block
|
12
|
+
end
|
13
|
+
|
14
|
+
def run_xcodeprojgen
|
15
|
+
system "ruby -I #{LIB_DIR} #{BIN_DIR}/xcodeprojgen"
|
16
|
+
raise "xcodeprojgen failed" unless $?.success?
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
$LOAD_PATH << File.dirname(__FILE__) + "/../lib"
|
2
|
+
require "xcode"
|
3
|
+
|
4
|
+
require "test/unit"
|
5
|
+
require "rubygems"
|
6
|
+
gem "mocha", "0.9.5"
|
7
|
+
require "mocha"
|
8
|
+
|
9
|
+
Test::Unit::TestCase.class_eval do
|
10
|
+
def self.test(method, &block)
|
11
|
+
define_method "test_#{method}".gsub(/\W/,"_"), &block
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PbxBuildFileTest < Test::Unit::TestCase
|
4
|
+
test "to_pbx" do
|
5
|
+
file = Xcode::PBXBuildFile.new_from_file(__FILE__)
|
6
|
+
assert_match /^\{isa = PBXBuildFile; fileRef = [A-Z0-9]{24};\}$/, file.to_pbx
|
7
|
+
end
|
8
|
+
|
9
|
+
test "attributes" do
|
10
|
+
file = Xcode::PBXBuildFile.new_from_file(__FILE__)
|
11
|
+
assert_equal ["isa", "fileRef"].sort, file.attributes.keys.sort
|
12
|
+
end
|
13
|
+
|
14
|
+
test "isa" do
|
15
|
+
file = Xcode::PBXBuildFile.new_from_file(__FILE__)
|
16
|
+
assert_equal "PBXBuildFile", file.isa
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PbxBuildPhaseTest < Test::Unit::TestCase
|
4
|
+
Sample = Class.new(Xcode::PBXBuildPhase) do
|
5
|
+
def isa
|
6
|
+
"PBXSampleBuildPhase"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
test "build_action_mask" do
|
11
|
+
phase = Sample.new
|
12
|
+
assert_equal "2147483647", phase.attributes["buildActionMask"]
|
13
|
+
end
|
14
|
+
|
15
|
+
test "files" do
|
16
|
+
phase = Sample.new
|
17
|
+
file = stub(:id => "ABC")
|
18
|
+
phase.files << file
|
19
|
+
assert_equal [file], phase.files
|
20
|
+
assert_equal ["ABC"], phase.attributes["files"]
|
21
|
+
end
|
22
|
+
|
23
|
+
test "postprocessing" do
|
24
|
+
phase = Sample.new
|
25
|
+
assert_equal "0", phase.attributes["runOnlyForDeploymentPostprocesssing"]
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PbxFileReferenceTest < Test::Unit::TestCase
|
4
|
+
def test_a_file_filetype
|
5
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.a")
|
6
|
+
assert_equal "archive.ar", ref.attributes["lastKnownFileType"]
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_fileEncoding_for_h_file
|
10
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.h")
|
11
|
+
assert_equal "4", ref.attributes["fileEncoding"]
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_lastKnownFileType_for_h_file
|
15
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.h")
|
16
|
+
assert_equal "sourcecode.c.h", ref.attributes["lastKnownFileType"]
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_last_known_file_type_for_plist
|
20
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.plist")
|
21
|
+
assert_equal "text.plist.xml", ref.attributes["lastKnownFileType"]
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_last_known_file_type_for_strings
|
25
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.strings")
|
26
|
+
assert_equal "text.plist.strings", ref.attributes["lastKnownFileType"]
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_attributes_for_h_file
|
30
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.h")
|
31
|
+
assert_equal ["isa", "fileEncoding", "lastKnownFileType", "path", "sourceTree"].sort, ref.attributes.keys.sort
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_fileEncoding_for_h_file
|
35
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.m")
|
36
|
+
assert_equal "4", ref.attributes["fileEncoding"]
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_lastKnownFileType_for_h_file
|
40
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.m")
|
41
|
+
assert_equal "sourcecode.c.objc", ref.attributes["lastKnownFileType"]
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_attributes_for_h_file
|
45
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.m")
|
46
|
+
assert_equal ["isa", "fileEncoding", "lastKnownFileType", "path", "sourceTree"].sort, ref.attributes.keys.sort
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_lastKnownFileType_for_image_file
|
50
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.png")
|
51
|
+
assert_equal "image.png", ref.attributes["lastKnownFileType"]
|
52
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.tiff")
|
53
|
+
assert_equal "image.tiff", ref.attributes["lastKnownFileType"]
|
54
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.jpg")
|
55
|
+
assert_equal "image.jpeg", ref.attributes["lastKnownFileType"]
|
56
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.jpeg")
|
57
|
+
assert_equal "image.jpeg", ref.attributes["lastKnownFileType"]
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_attributes_for_image_file
|
61
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.png")
|
62
|
+
assert_equal ["isa", "lastKnownFileType", "path", "sourceTree"].sort, ref.attributes.keys.sort
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_isa
|
66
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.any")
|
67
|
+
assert_equal "PBXFileReference", ref.isa
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_source_tree
|
71
|
+
ref = Xcode::PBXFileReference.new_from_file("foo.any")
|
72
|
+
assert_equal "<group>", ref.attributes["sourceTree"]
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PbxFormatterTest < Test::Unit::TestCase
|
4
|
+
def test_to_pbx
|
5
|
+
klass = Class.new do
|
6
|
+
include Xcode::PBXFormatter
|
7
|
+
|
8
|
+
def id
|
9
|
+
"_id_"
|
10
|
+
end
|
11
|
+
|
12
|
+
def attributes
|
13
|
+
{"a" => "b", "c" => "d"}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
instance = klass.new
|
17
|
+
assert_equal "{a = b; c = d;}", instance.to_pbx
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_to_pbx_with_array
|
21
|
+
klass = Class.new do
|
22
|
+
include Xcode::PBXFormatter
|
23
|
+
|
24
|
+
def id
|
25
|
+
"_id_"
|
26
|
+
end
|
27
|
+
|
28
|
+
def attributes
|
29
|
+
{"a" => ["b", "c", "d"]}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
instance = klass.new
|
33
|
+
assert_equal "{a = (b, c, d);}", instance.to_pbx
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PbxGroupTest < Test::Unit::TestCase
|
4
|
+
def test_isa
|
5
|
+
group = Xcode::PBXGroup.new({})
|
6
|
+
assert_equal "PBXGroup", group.attributes["isa"]
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_source_tree
|
10
|
+
group = Xcode::PBXGroup.new({})
|
11
|
+
assert_equal "<group>", group.attributes["sourceTree"]
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_attributes_merge
|
15
|
+
group = Xcode::PBXGroup.new "key" => "value"
|
16
|
+
assert_equal "value", group.attributes["key"]
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_smoke_test_to_pbx
|
20
|
+
assert_nothing_raised do
|
21
|
+
group = Xcode::PBXGroup.new({})
|
22
|
+
group.to_pbx
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PbxNativeTargetTest < Test::Unit::TestCase
|
4
|
+
test "attributes" do
|
5
|
+
target = Xcode::PBXNativeTarget.new "Butterfly"
|
6
|
+
assert_equal "com.apple.product-type.application", target.attributes["productType"]
|
7
|
+
assert_equal "Butterfly", target.attributes["productName"]
|
8
|
+
assert_equal [], target.attributes["dependencies"]
|
9
|
+
assert_equal [], target.attributes["buildRules"]
|
10
|
+
assert_equal "PBXNativeTarget", target.attributes["isa"]
|
11
|
+
assert_equal "Butterfly", target.attributes["name"]
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class PbxProjectTest < Test::Unit::TestCase
|
4
|
+
def test_isa
|
5
|
+
project = Xcode::PBXProject.new
|
6
|
+
assert_equal "PBXProject", project.isa
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_compatibility_version
|
10
|
+
project = Xcode::PBXProject.new
|
11
|
+
assert_equal "Xcode 3.1", project.compatibility_version
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_attributes
|
15
|
+
project = Xcode::PBXProject.new
|
16
|
+
assert_equal "PBXProject", project.attributes["isa"]
|
17
|
+
assert_equal "Xcode 3.1", project.attributes["compatibilityVersion"]
|
18
|
+
assert_equal "", project.attributes["projectDirPath"]
|
19
|
+
assert_equal "", project.attributes["projectRoot"]
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class XcBuildConfigurationTest < Test::Unit::TestCase
|
4
|
+
def test_isa
|
5
|
+
config = Xcode::XCBuildConfiguration.new "name", {}
|
6
|
+
assert_equal "XCBuildConfiguration", config.attributes["isa"]
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_name_and_build_settings
|
10
|
+
build_settings = {"foo" => "bar"}
|
11
|
+
config = Xcode::XCBuildConfiguration.new "name", build_settings
|
12
|
+
assert_equal "name", config.attributes["name"]
|
13
|
+
assert_equal build_settings, config.attributes["buildSettings"]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class XcConfigurationListTest < Test::Unit::TestCase
|
4
|
+
def test_isa
|
5
|
+
list = Xcode::XCConfigurationList.new
|
6
|
+
assert_equal "XCConfigurationList", list.attributes["isa"]
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_attributes
|
10
|
+
list = Xcode::XCConfigurationList.new
|
11
|
+
assert_equal "0", list.attributes["defaultConfigurationIsVisible"]
|
12
|
+
assert_equal "Release", list.attributes["defaultConfigurationName"]
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_build_configurations
|
16
|
+
list = Xcode::XCConfigurationList.new
|
17
|
+
list.build_configurations << stub(:id => "id1")
|
18
|
+
list.build_configurations << stub(:id => "id2")
|
19
|
+
assert_equal ["id1", "id2"], list.attributes["buildConfigurations"]
|
20
|
+
end
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: framework-x-xcodeprojgen
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dan Manges
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-05-09 00:00:00 -07:00
|
13
|
+
default_executable: xcodeprojgen
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: generates xcodeproj files
|
17
|
+
email: daniel.manges@gmail.com
|
18
|
+
executables:
|
19
|
+
- xcodeprojgen
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- lib/xcode/frameworks.rb
|
26
|
+
- lib/xcode/iphone.rb
|
27
|
+
- lib/xcode/iphone_build_configurations.rb
|
28
|
+
- lib/xcode/pbx_build_file.rb
|
29
|
+
- lib/xcode/pbx_build_phase.rb
|
30
|
+
- lib/xcode/pbx_copy_files_build_phase.rb
|
31
|
+
- lib/xcode/pbx_file_reference.rb
|
32
|
+
- lib/xcode/pbx_formatter.rb
|
33
|
+
- lib/xcode/pbx_frameworks_build_phase.rb
|
34
|
+
- lib/xcode/pbx_group.rb
|
35
|
+
- lib/xcode/pbx_native_target.rb
|
36
|
+
- lib/xcode/pbx_proj.rb
|
37
|
+
- lib/xcode/pbx_project.rb
|
38
|
+
- lib/xcode/pbx_resources_build_phase.rb
|
39
|
+
- lib/xcode/pbx_sources_build_phase.rb
|
40
|
+
- lib/xcode/xc_build_configuration.rb
|
41
|
+
- lib/xcode/xc_configuration_list.rb
|
42
|
+
- lib/xcode.rb
|
43
|
+
- lib/xcodeproj_gen.rb
|
44
|
+
- test/acceptance/command_line_foundation_test.rb
|
45
|
+
- test/acceptance/command_line_in_c_test.rb
|
46
|
+
- test/acceptance/test_helper.rb
|
47
|
+
- test/unit/test_helper.rb
|
48
|
+
- test/unit/xcode/pbx_build_file_test.rb
|
49
|
+
- test/unit/xcode/pbx_build_phase_test.rb
|
50
|
+
- test/unit/xcode/pbx_file_reference_test.rb
|
51
|
+
- test/unit/xcode/pbx_formatter_test.rb
|
52
|
+
- test/unit/xcode/pbx_group_test.rb
|
53
|
+
- test/unit/xcode/pbx_native_target_test.rb
|
54
|
+
- test/unit/xcode/pbx_project_test.rb
|
55
|
+
- test/unit/xcode/xc_build_configuration_test.rb
|
56
|
+
- test/unit/xcode/xc_configuration_list_test.rb
|
57
|
+
- test/unit/xcode_test.rb
|
58
|
+
- TODO
|
59
|
+
- README.markdown
|
60
|
+
- Rakefile
|
61
|
+
- bin/xcodeprojgen
|
62
|
+
has_rdoc: false
|
63
|
+
homepage: http://github.com/framework-x/xcodeprojgen
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options: []
|
66
|
+
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
80
|
+
version:
|
81
|
+
requirements: []
|
82
|
+
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 1.2.0
|
85
|
+
signing_key:
|
86
|
+
specification_version: 2
|
87
|
+
summary: generates xcodeproj files
|
88
|
+
test_files: []
|
89
|
+
|