zerg_xcode 0.3.5 → 0.4.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.
Files changed (61) hide show
  1. data/.document +5 -0
  2. data/.project +17 -0
  3. data/Gemfile +10 -0
  4. data/Gemfile.lock +30 -0
  5. data/Rakefile +50 -23
  6. data/VERSION +1 -0
  7. data/lib/zerg_xcode/file_format/archiver.rb +0 -24
  8. data/lib/zerg_xcode/file_format/id_generator.rb +30 -0
  9. data/lib/zerg_xcode/file_format/lexer.rb +113 -56
  10. data/lib/zerg_xcode/file_format/parser.rb +28 -34
  11. data/lib/zerg_xcode/file_format/scan_buffer.rb +46 -0
  12. data/lib/zerg_xcode/objects/pbx_project.rb +1 -1
  13. data/lib/zerg_xcode/objects/xcode_object.rb +2 -1
  14. data/lib/zerg_xcode/{file_format/paths.rb → paths.rb} +5 -6
  15. data/lib/zerg_xcode/shortcuts.rb +2 -2
  16. data/lib/zerg_xcode.rb +7 -1
  17. data/spec/archiver_spec.rb +83 -0
  18. data/spec/builder/runner_spec.rb +27 -0
  19. data/spec/builder/sdk_spec.rb +11 -0
  20. data/spec/encoder_spec.rb +17 -0
  21. data/{test → spec}/fixtures/ClosedLib/ClosedLib.xcodeproj/project.pbxproj +0 -0
  22. data/{test → spec}/fixtures/ClosedLib/ClosedLib_Prefix.pch +0 -0
  23. data/{test → spec}/fixtures/ClosedLib/ClosedNative.c +0 -0
  24. data/{test → spec}/fixtures/ClosedLib/ClosedNative.h +0 -0
  25. data/{test → spec}/fixtures/FlatTestApp/FlatTestApp.xcodeproj/project.pbxproj +0 -0
  26. data/{test → spec}/fixtures/TestApp/TestApp.xcodeproj/project.pbxproj +0 -0
  27. data/{test → spec}/fixtures/TestApp30.xcodeproj/project.pbxproj +0 -0
  28. data/{test → spec}/fixtures/TestLib30.xcodeproj/project.pbxproj +0 -0
  29. data/{test → spec}/fixtures/ZergSupport.xcodeproj/project.pbxproj +0 -0
  30. data/{test → spec}/fixtures/project.pbxproj +0 -0
  31. data/{test → spec}/fixtures/project.pbxproj.compat +0 -0
  32. data/spec/id_generator_spec.rb +38 -0
  33. data/spec/lexer_spec.rb +111 -0
  34. data/spec/parser_spec.rb +34 -0
  35. data/spec/paths_spec.rb +75 -0
  36. data/spec/shortcuts_spec.rb +24 -0
  37. data/test/objects/pbx_build_file_test.rb +3 -3
  38. data/test/objects/pbx_build_phase_test.rb +1 -1
  39. data/test/objects/pbx_container_item_proxy_test.rb +1 -1
  40. data/test/objects/pbx_group_test.rb +1 -1
  41. data/test/objects/pbx_native_target_test.rb +2 -2
  42. data/test/objects/pbx_project_test.rb +9 -9
  43. data/test/objects/pbx_target_dependency_test.rb +1 -1
  44. data/test/objects/xc_configuration_list_test.rb +1 -1
  45. data/test/plugins/addlibrary_test.rb +2 -2
  46. data/test/plugins/core/core_test.rb +1 -1
  47. data/test/plugins/import_test.rb +71 -71
  48. data/test/plugins/irb_test.rb +3 -3
  49. data/test/plugins/ls_test.rb +3 -3
  50. data/test/plugins/lstargets_test.rb +3 -3
  51. data/test/plugins/retarget_test.rb +2 -2
  52. data/zerg_xcode.gemspec +112 -17
  53. metadata +115 -113
  54. data/test/builder/runner_test.rb +0 -35
  55. data/test/builder/sdk_test.rb +0 -17
  56. data/test/file_format/archiver_test.rb +0 -74
  57. data/test/file_format/encoder_test.rb +0 -15
  58. data/test/file_format/lexer_test.rb +0 -60
  59. data/test/file_format/parser_test.rb +0 -49
  60. data/test/file_format/path_test.rb +0 -47
  61. data/test/shortcuts_test.rb +0 -22
metadata CHANGED
@@ -1,71 +1,101 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: zerg_xcode
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Victor Costan
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2009-12-06 00:00:00 -05:00
13
- default_executable: bin/zerg-xcode
14
- dependencies: []
15
-
16
- description: Automated modifications for Xcode project files
12
+ date: 2012-01-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: &70360439882840 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70360439882840
25
+ - !ruby/object:Gem::Dependency
26
+ name: jeweler
27
+ requirement: &70360439895920 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 1.6.4
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70360439895920
36
+ - !ruby/object:Gem::Dependency
37
+ name: rcov
38
+ requirement: &70360439892000 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70360439892000
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: &70360439948260 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.7.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70360439948260
58
+ - !ruby/object:Gem::Dependency
59
+ name: flexmock
60
+ requirement: &70360439945920 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70360439945920
69
+ description:
17
70
  email: victor@zergling.net
18
- executables:
71
+ executables:
19
72
  - zerg-xcode
20
73
  extensions: []
21
-
22
- extra_rdoc_files:
23
- - CHANGELOG
74
+ extra_rdoc_files:
24
75
  - LICENSE
25
76
  - README.textile
26
- - bin/zerg-xcode
27
- - lib/zerg_xcode.rb
28
- - lib/zerg_xcode/builder/runner.rb
29
- - lib/zerg_xcode/builder/sdks.rb
30
- - lib/zerg_xcode/file_format/archiver.rb
31
- - lib/zerg_xcode/file_format/encoder.rb
32
- - lib/zerg_xcode/file_format/lexer.rb
33
- - lib/zerg_xcode/file_format/parser.rb
34
- - lib/zerg_xcode/file_format/paths.rb
35
- - lib/zerg_xcode/objects/pbx_build_file.rb
36
- - lib/zerg_xcode/objects/pbx_build_phase.rb
37
- - lib/zerg_xcode/objects/pbx_container_item_proxy.rb
38
- - lib/zerg_xcode/objects/pbx_group.rb
39
- - lib/zerg_xcode/objects/pbx_native_target.rb
40
- - lib/zerg_xcode/objects/pbx_project.rb
41
- - lib/zerg_xcode/objects/pbx_target_dependency.rb
42
- - lib/zerg_xcode/objects/xc_configuration_list.rb
43
- - lib/zerg_xcode/objects/xcode_object.rb
44
- - lib/zerg_xcode/plugins/addlibrary.rb
45
- - lib/zerg_xcode/plugins/core/core.rb
46
- - lib/zerg_xcode/plugins/help.rb
47
- - lib/zerg_xcode/plugins/import.rb
48
- - lib/zerg_xcode/plugins/irb.rb
49
- - lib/zerg_xcode/plugins/ls.rb
50
- - lib/zerg_xcode/plugins/lstargets.rb
51
- - lib/zerg_xcode/plugins/retarget.rb
52
- - lib/zerg_xcode/shortcuts.rb
53
- files:
77
+ files:
78
+ - .document
79
+ - .project
54
80
  - CHANGELOG
81
+ - Gemfile
82
+ - Gemfile.lock
55
83
  - LICENSE
56
84
  - Manifest
57
85
  - README.textile
58
86
  - RUBYFORGE
59
87
  - Rakefile
88
+ - VERSION
60
89
  - bin/zerg-xcode
61
90
  - lib/zerg_xcode.rb
62
91
  - lib/zerg_xcode/builder/runner.rb
63
92
  - lib/zerg_xcode/builder/sdks.rb
64
93
  - lib/zerg_xcode/file_format/archiver.rb
65
94
  - lib/zerg_xcode/file_format/encoder.rb
95
+ - lib/zerg_xcode/file_format/id_generator.rb
66
96
  - lib/zerg_xcode/file_format/lexer.rb
67
97
  - lib/zerg_xcode/file_format/parser.rb
68
- - lib/zerg_xcode/file_format/paths.rb
98
+ - lib/zerg_xcode/file_format/scan_buffer.rb
69
99
  - lib/zerg_xcode/objects/pbx_build_file.rb
70
100
  - lib/zerg_xcode/objects/pbx_build_phase.rb
71
101
  - lib/zerg_xcode/objects/pbx_container_item_proxy.rb
@@ -75,6 +105,7 @@ files:
75
105
  - lib/zerg_xcode/objects/pbx_target_dependency.rb
76
106
  - lib/zerg_xcode/objects/xc_configuration_list.rb
77
107
  - lib/zerg_xcode/objects/xcode_object.rb
108
+ - lib/zerg_xcode/paths.rb
78
109
  - lib/zerg_xcode/plugins/addlibrary.rb
79
110
  - lib/zerg_xcode/plugins/core/core.rb
80
111
  - lib/zerg_xcode/plugins/help.rb
@@ -84,24 +115,26 @@ files:
84
115
  - lib/zerg_xcode/plugins/lstargets.rb
85
116
  - lib/zerg_xcode/plugins/retarget.rb
86
117
  - lib/zerg_xcode/shortcuts.rb
87
- - test/builder/runner_test.rb
88
- - test/builder/sdk_test.rb
89
- - test/file_format/archiver_test.rb
90
- - test/file_format/encoder_test.rb
91
- - test/file_format/lexer_test.rb
92
- - test/file_format/parser_test.rb
93
- - test/file_format/path_test.rb
94
- - test/fixtures/ClosedLib/ClosedLib.xcodeproj/project.pbxproj
95
- - test/fixtures/ClosedLib/ClosedLib_Prefix.pch
96
- - test/fixtures/ClosedLib/ClosedNative.c
97
- - test/fixtures/ClosedLib/ClosedNative.h
98
- - test/fixtures/FlatTestApp/FlatTestApp.xcodeproj/project.pbxproj
99
- - test/fixtures/TestApp/TestApp.xcodeproj/project.pbxproj
100
- - test/fixtures/TestApp30.xcodeproj/project.pbxproj
101
- - test/fixtures/TestLib30.xcodeproj/project.pbxproj
102
- - test/fixtures/ZergSupport.xcodeproj/project.pbxproj
103
- - test/fixtures/project.pbxproj
104
- - test/fixtures/project.pbxproj.compat
118
+ - spec/archiver_spec.rb
119
+ - spec/builder/runner_spec.rb
120
+ - spec/builder/sdk_spec.rb
121
+ - spec/encoder_spec.rb
122
+ - spec/fixtures/ClosedLib/ClosedLib.xcodeproj/project.pbxproj
123
+ - spec/fixtures/ClosedLib/ClosedLib_Prefix.pch
124
+ - spec/fixtures/ClosedLib/ClosedNative.c
125
+ - spec/fixtures/ClosedLib/ClosedNative.h
126
+ - spec/fixtures/FlatTestApp/FlatTestApp.xcodeproj/project.pbxproj
127
+ - spec/fixtures/TestApp/TestApp.xcodeproj/project.pbxproj
128
+ - spec/fixtures/TestApp30.xcodeproj/project.pbxproj
129
+ - spec/fixtures/TestLib30.xcodeproj/project.pbxproj
130
+ - spec/fixtures/ZergSupport.xcodeproj/project.pbxproj
131
+ - spec/fixtures/project.pbxproj
132
+ - spec/fixtures/project.pbxproj.compat
133
+ - spec/id_generator_spec.rb
134
+ - spec/lexer_spec.rb
135
+ - spec/parser_spec.rb
136
+ - spec/paths_spec.rb
137
+ - spec/shortcuts_spec.rb
105
138
  - test/objects/pbx_build_file_test.rb
106
139
  - test/objects/pbx_build_phase_test.rb
107
140
  - test/objects/pbx_container_item_proxy_test.rb
@@ -119,63 +152,32 @@ files:
119
152
  - test/plugins/ls_test.rb
120
153
  - test/plugins/lstargets_test.rb
121
154
  - test/plugins/retarget_test.rb
122
- - test/shortcuts_test.rb
123
155
  - zerg_xcode.gemspec
124
- has_rdoc: true
125
- homepage: http://www.zergling.net/
156
+ homepage: http://github.com/zerglings/zerg_xcode
126
157
  licenses: []
127
-
128
158
  post_install_message:
129
- rdoc_options:
130
- - --line-numbers
131
- - --inline-source
132
- - --title
133
- - Zerg_xcode
134
- - --main
135
- - README.textile
136
- require_paths:
159
+ rdoc_options: []
160
+ require_paths:
137
161
  - lib
138
- required_ruby_version: !ruby/object:Gem::Requirement
139
- requirements:
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- version: "0"
143
- version:
144
- required_rubygems_version: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- version: "1.2"
149
- version:
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ! '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ segments:
169
+ - 0
170
+ hash: -3299336587567125592
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
150
177
  requirements: []
151
-
152
- rubyforge_project: zerglings
153
- rubygems_version: 1.3.5
178
+ rubyforge_project:
179
+ rubygems_version: 1.8.10
154
180
  signing_key:
155
181
  specification_version: 3
156
182
  summary: Automated modifications for Xcode project files
157
- test_files:
158
- - test/builder/runner_test.rb
159
- - test/builder/sdk_test.rb
160
- - test/file_format/archiver_test.rb
161
- - test/file_format/encoder_test.rb
162
- - test/file_format/lexer_test.rb
163
- - test/file_format/parser_test.rb
164
- - test/file_format/path_test.rb
165
- - test/objects/pbx_build_file_test.rb
166
- - test/objects/pbx_build_phase_test.rb
167
- - test/objects/pbx_container_item_proxy_test.rb
168
- - test/objects/pbx_group_test.rb
169
- - test/objects/pbx_native_target_test.rb
170
- - test/objects/pbx_project_test.rb
171
- - test/objects/pbx_target_dependency_test.rb
172
- - test/objects/xc_configuration_list_test.rb
173
- - test/objects/xcode_object_test.rb
174
- - test/plugins/addlibrary_test.rb
175
- - test/plugins/core/core_test.rb
176
- - test/plugins/import_test.rb
177
- - test/plugins/irb_test.rb
178
- - test/plugins/ls_test.rb
179
- - test/plugins/lstargets_test.rb
180
- - test/plugins/retarget_test.rb
181
- - test/shortcuts_test.rb
183
+ test_files: []
@@ -1,35 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class RunnerTest < Test::Unit::TestCase
9
- def setup
10
- @project = ZergXcode.load 'test/fixtures/ClosedLib'
11
- @configuration = 'Release'
12
- @sdk = ZergXcode::Builder::Sdk.all.
13
- select { |s| /iPhone .* 3\.0$/ =~ s[:name] }.first
14
- @golden_build_path = 'test/fixtures/ClosedLib/build/Release-iphoneos'
15
- @product = @golden_build_path + '/libClosedLib.a'
16
- end
17
-
18
- def teardown
19
- ZergXcode::Builder::Runner.clean @project, @sdk, @configuration
20
- end
21
-
22
- def test_clean_build_clean
23
- assert ZergXcode::Builder::Runner.clean(@project, @sdk, @configuration),
24
- 'Initial clean failed'
25
-
26
- build_path = ZergXcode::Builder::Runner.build @project, @sdk, @configuration
27
- assert build_path, 'Build failed'
28
- assert_equal @golden_build_path, build_path, 'Build returned incorrect path'
29
- assert File.exist?(@product), 'Build product not found'
30
-
31
- assert ZergXcode::Builder::Runner.clean(@project, @sdk, @configuration),
32
- 'Post-build clean failed'
33
- assert !File.exist?(@product), 'Build product not removed by clean'
34
- end
35
- end
@@ -1,17 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class SdkTest < Test::Unit::TestCase
9
- def test_all
10
- all_sdks = ZergXcode::Builder::Sdk.all
11
- mac105 = { :group => 'Mac OS X SDKs', :name => 'Mac OS X 10.5',
12
- :arg => 'macosx10.5' }
13
- assert_operator all_sdks, :include?, mac105, 'MacOS 10.5 SDK included'
14
-
15
- assert_operator all_sdks, :equal?, all_sdks, 'SDKs are cached'
16
- end
17
- end
@@ -1,74 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class ArchiverTest < Test::Unit::TestCase
9
- Parser = ZergXcode::Parser
10
- Archiver = ZergXcode::Archiver
11
- XcodeObject = ZergXcode::XcodeObject
12
-
13
- def setup
14
- @sub1 = XcodeObject.new :array => ['a', 'b', 'c'], :string => 's'
15
- @sub1.archive_id = '39'
16
- @sub2 = XcodeObject.new :hash => { :k => 'v', :k2 => 'v2' }, :sub1 => @sub1
17
- @sub2.archive_id = '42'
18
- @root = XcodeObject.new :sub1 => @sub1, :sub2 => @sub2
19
- @root.archive_id = '49'
20
- @root.version = 45
21
-
22
- @archived = {
23
- "archiveVersion" => '1',
24
- "rootObject" => '49',
25
- "classes" => {},
26
- "objectVersion" => '45',
27
- "objects" => {
28
- "49" => { :sub1 => "39", :sub2 => "42" },
29
- "39" => { :array => ["a", "b", "c"], :string => "s" },
30
- "42" => { :hash => { :k => "v", :k2 => "v2" }, :sub1 => "39" }
31
- }
32
- }
33
-
34
- @pbxdata = File.read 'test/fixtures/project.pbxproj'
35
- end
36
-
37
- def test_archive_to_hash
38
- hash = Archiver.archive_to_hash @root
39
- assert_equal @archived, hash
40
- end
41
-
42
- def test_unarchive_hash
43
- root = Archiver.unarchive_hash @archived
44
- assert_equal @sub1[:s], root[:sub1][:s]
45
- assert_equal @sub1[:array], root[:sub1][:array]
46
- assert_equal @sub2[:hash], root[:sub2][:hash]
47
- assert_equal root[:sub1], root[:sub2][:sub1], 'Object graph split'
48
- end
49
-
50
- def test_generator
51
- generator = Archiver::IdGenerator.new
52
- assert_equal '49', generator.id_for(@root)
53
- assert_equal '42', generator.id_for(@sub2)
54
- new_id = generator.id_for @root
55
- assert '49' != new_id, 'Initial ID generated twice'
56
- newer_id = generator.id_for @root
57
- assert !['49', new_id].include?(newer_id), 'New ID generated twice'
58
- end
59
-
60
- def test_archive_passthrough
61
- golden_hash = Parser.parse @pbxdata
62
- project = Archiver.unarchive @pbxdata
63
- dupdata = Archiver.archive project
64
-
65
- assert_equal golden_hash, Parser.parse(dupdata)
66
- end
67
-
68
- def test_unarchive
69
- project = Archiver.unarchive @pbxdata
70
-
71
- assert_equal 'TestApp.app',
72
- project['targets'][0]['productReference']['path']
73
- end
74
- end
@@ -1,15 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class EncoderTest < Test::Unit::TestCase
9
- def test_encoder
10
- pbxdata = File.read 'test/fixtures/project.pbxproj'
11
- golden_encoded_proj = File.read 'test/fixtures/project.pbxproj.compat'
12
- proj = ZergXcode::Parser.parse pbxdata
13
- assert_equal golden_encoded_proj, ZergXcode::Encoder.encode(proj)
14
- end
15
- end
@@ -1,60 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class LexerTest < Test::Unit::TestCase
9
- def test_lexer
10
- pbxdata = File.read 'test/fixtures/project.pbxproj'
11
- golden_starts = [[:encoding, "UTF8"],
12
- :begin_hash,
13
- [:symbol, "archiveVersion"], :assign, [:symbol, "1"],
14
- :stop,
15
- [:symbol, "classes"], :assign, :begin_hash, :end_hash,
16
- :stop,
17
- [:symbol, "objectVersion"], :assign, [:symbol, "45"],
18
- :stop,
19
- [:symbol, "objects"], :assign, :begin_hash,
20
- [:symbol, "1D3623260D0F684500981E51"], :assign,
21
- :begin_hash,
22
- [:symbol, "isa"], :assign, [:symbol, "PBXBuildFile"],
23
- :stop,
24
- [:symbol, "fileRef"], :assign,
25
- [:symbol, "1D3623250D0F684500981E51"],
26
- :stop,
27
- :end_hash,
28
- :stop,
29
- [:symbol, "1D60589B0D05DD56006BFB54"], :assign,
30
- :begin_hash,
31
- [:symbol, "isa"], :assign, [:symbol, "PBXBuildFile"],
32
- :stop,
33
- [:symbol, "fileRef"], :assign,
34
- [:symbol, "29B97316FDCFA39411CA2CEA"],
35
- :stop,
36
- :end_hash,
37
- :stop,
38
- [:symbol, "1D60589F0D05DD5A006BFB54"], :assign,
39
- :begin_hash,
40
- [:symbol, "isa"], :assign, [:symbol, "PBXBuildFile"],
41
- :stop,
42
- [:symbol, "fileRef"], :assign,
43
- [:symbol, "1D30AB110D05D00D00671497"],
44
- :stop,
45
- :end_hash,
46
- :stop]
47
-
48
- tokens = ZergXcode::Lexer.tokenize pbxdata
49
- assert_equal golden_starts, tokens[0, golden_starts.length]
50
- #p tokens.length
51
- #p tokens[197, 50]
52
- end
53
-
54
- def test_escaped_string
55
- pbxdata = File.read 'test/fixtures/ZergSupport.xcodeproj/project.pbxproj'
56
- tokens = ZergXcode::Lexer.tokenize pbxdata
57
- assert tokens.include?([:string,
58
- "\"$(SRCROOT)/build/Debug-iphonesimulator\""])
59
- end
60
- end
@@ -1,49 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class ParserTest < Test::Unit::TestCase
9
- def test_parser
10
- pbxdata = File.read 'test/fixtures/project.pbxproj'
11
- proj = ZergXcode::Parser.parse pbxdata
12
-
13
- assert proj.kind_of?(Hash), 'Project structure should be a hash'
14
- assert_equal '1', proj['archiveVersion'], 'Archive version'
15
- assert_equal '45', proj['objectVersion'], 'Object version'
16
- assert_equal '29B97313FDCFA39411CA2CEA', proj['rootObject'], 'Root object'
17
-
18
- golden_file_ref = {
19
- 'isa' => 'PBXBuildFile',
20
- 'fileRef' => '28AD733E0D9D9553002E5188'
21
- }
22
- assert_equal golden_file_ref, proj['objects']['28AD733F0D9D9553002E5188']
23
-
24
- golden_file = {
25
- 'isa' => 'PBXFileReference',
26
- 'fileEncoding' => '4',
27
- 'lastKnownFileType' => 'sourcecode.c.h',
28
- 'path' => 'TestAppViewController.h',
29
- 'sourceTree' => "<group>"
30
- }
31
- assert_equal golden_file, proj['objects']['28D7ACF60DDB3853001CB0EB']
32
-
33
- golden_config = {
34
- 'isa' => 'XCBuildConfiguration',
35
- 'buildSettings' => {
36
- 'ARCHS' => "$(ARCHS_STANDARD_32_BIT)",
37
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" => "iPhone Developer",
38
- 'GCC_C_LANGUAGE_STANDARD' => 'c99',
39
- 'GCC_WARN_ABOUT_RETURN_TYPE' => 'YES',
40
- 'GCC_WARN_UNUSED_VARIABLE' => 'YES',
41
- 'ONLY_ACTIVE_ARCH' => 'YES',
42
- 'PREBINDING' => 'NO',
43
- 'SDKROOT' => 'iphoneos2.2.1'
44
- },
45
- 'name' => 'Debug'
46
- }
47
- assert_equal golden_config, proj['objects']['C01FCF4F08A954540054247B']
48
- end
49
- end
@@ -1,47 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class PathTest < Test::Unit::TestCase
9
- Paths = ZergXcode::Paths
10
-
11
- def test_project_file_at
12
- assert_equal 'test/fixtures/ZergSupport.xcodeproj/project.pbxproj',
13
- Paths.project_file_at('test/fixtures/ZergSupport'), 'short'
14
- assert_equal 'test/fixtures/ZergSupport.xcodeproj/project.pbxproj',
15
- Paths.project_file_at('test/fixtures/ZergSupport.xcodeproj'),
16
- 'full project name'
17
- assert_equal 'test/fixtures/project.pbxproj',
18
- Paths.project_file_at('test/fixtures'),
19
- 'enclosing dir with weird name'
20
- assert_equal 'test/fixtures/project.pbxproj',
21
- Paths.project_file_at('test'),
22
- 'subdir with weird name'
23
- assert_equal 'test/fixtures/TestApp/TestApp.xcodeproj/project.pbxproj',
24
- Paths.project_file_at('test/fixtures/TestApp'),
25
- 'project in subdir'
26
- assert_equal 'test/fixtures/TestApp/TestApp.xcodeproj/project.pbxproj',
27
- Paths.project_file_at('test/fixtures/TestApp/TestApp.xcodeproj'),
28
- 'full project name in subdir'
29
- end
30
-
31
- def test_project_root_at
32
- assert_equal 'test/fixtures',
33
- Paths.project_root_at('test/fixtures/ZergSupport'),
34
- 'short project name'
35
- assert_equal 'test/fixtures',
36
- Paths.project_root_at('test/fixtures/ZergSupport.xcodeproj'),
37
- 'full project name'
38
- assert_equal 'test', Paths.project_root_at('test/fixtures'),
39
- 'enclosing dir with weird name'
40
- assert_equal 'test', Paths.project_root_at('test'), 'subdir with weird name'
41
- assert_equal 'test/fixtures/TestApp',
42
- Paths.project_root_at('test/fixtures/TestApp'), 'project dir'
43
- assert_equal 'test/fixtures/TestApp',
44
- Paths.project_root_at('test/fixtures/TestApp/TestApp.xcodeproj'),
45
- 'full project name in subdir'
46
- end
47
- end
@@ -1,22 +0,0 @@
1
- # Author:: Victor Costan
2
- # Copyright:: Copyright (C) 2009 Zergling.Net
3
- # License:: MIT
4
-
5
- require 'zerg_xcode'
6
- require 'test/unit'
7
-
8
- class ShortcutsTest < Test::Unit::TestCase
9
- def test_load
10
- proj = ZergXcode.load 'test/fixtures/ZergSupport'
11
- assert_equal ['ZergSupport', 'ZergTestSupport', 'ZergSupportTests'].sort,
12
- proj['targets'].map { |target| target['name'] }.sort
13
- assert_equal 'test/fixtures/ZergSupport.xcodeproj/project.pbxproj',
14
- proj.source_filename, 'Loading did not set project source'
15
- end
16
-
17
- def test_plugin
18
- ls_instance = ZergXcode.plugin 'ls'
19
- ls_class = ZergXcode::Plugins::Ls
20
- assert ls_instance.kind_of?(ls_class), 'plugin retrieves wrong object'
21
- end
22
- end