vendor 0.0.1

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 (62) hide show
  1. data/.gitignore +12 -0
  2. data/.travis.yml +4 -0
  3. data/Gemfile +8 -0
  4. data/Gemfile.lock +68 -0
  5. data/LICENCE +19 -0
  6. data/Rakefile +11 -0
  7. data/Readme.markdown +109 -0
  8. data/bin/vendor +62 -0
  9. data/lib/vendor/api.rb +49 -0
  10. data/lib/vendor/cli/auth.rb +38 -0
  11. data/lib/vendor/cli.rb +23 -0
  12. data/lib/vendor/config.rb +51 -0
  13. data/lib/vendor/extensions/array.rb +7 -0
  14. data/lib/vendor/extensions/fixnum.rb +7 -0
  15. data/lib/vendor/extensions/hash.rb +10 -0
  16. data/lib/vendor/extensions/string.rb +11 -0
  17. data/lib/vendor/plist.rb +255 -0
  18. data/lib/vendor/vendor_spec/builder.rb +83 -0
  19. data/lib/vendor/vendor_spec/dsl.rb +39 -0
  20. data/lib/vendor/vendor_spec/loader.rb +23 -0
  21. data/lib/vendor/version.rb +5 -0
  22. data/lib/vendor/xcode/object.rb +102 -0
  23. data/lib/vendor/xcode/objects/pbx_build_file.rb +9 -0
  24. data/lib/vendor/xcode/objects/pbx_container_item_proxy.rb +8 -0
  25. data/lib/vendor/xcode/objects/pbx_file_reference.rb +21 -0
  26. data/lib/vendor/xcode/objects/pbx_frameworks_build_phase.rb +9 -0
  27. data/lib/vendor/xcode/objects/pbx_group.rb +13 -0
  28. data/lib/vendor/xcode/objects/pbx_native_target.rb +11 -0
  29. data/lib/vendor/xcode/objects/pbx_project.rb +12 -0
  30. data/lib/vendor/xcode/objects/pbx_resources_build_phase.rb +7 -0
  31. data/lib/vendor/xcode/objects/pbx_shell_script_build_phase.rb +7 -0
  32. data/lib/vendor/xcode/objects/pbx_sources_build_phase.rb +9 -0
  33. data/lib/vendor/xcode/objects/pbx_target_dependency.rb +7 -0
  34. data/lib/vendor/xcode/objects/pbx_variant_group.rb +7 -0
  35. data/lib/vendor/xcode/objects/xc_build_configuration.rb +7 -0
  36. data/lib/vendor/xcode/objects/xc_configuration_list.rb +9 -0
  37. data/lib/vendor/xcode/project.rb +130 -0
  38. data/lib/vendor.rb +33 -0
  39. data/spec/spec_helper.rb +17 -0
  40. data/spec/support/api_stubs.rb +12 -0
  41. data/spec/support/resources/files/SecondViewController.h +13 -0
  42. data/spec/support/resources/files/SecondViewController.m +43 -0
  43. data/spec/support/resources/projects/ProjectWithSpecs/ProjectWithSpecs.xcodeproj/project.pbxproj +320 -0
  44. data/spec/support/resources/projects/TabBarWithUnitTests/TabBarWithUnitTests.xcodeproj/project.pbxproj +473 -0
  45. data/spec/support/resources/vendors/DKBenchmark/DKBenchmark.h +18 -0
  46. data/spec/support/resources/vendors/DKBenchmark/DKBenchmark.m +73 -0
  47. data/spec/support/resources/vendors/DKBenchmark/DKBenchmark.vendorspec +11 -0
  48. data/spec/support/resources/vendors/DKBenchmarkUnsafe/DKBenchmark.h +18 -0
  49. data/spec/support/resources/vendors/DKBenchmarkUnsafe/DKBenchmark.m +73 -0
  50. data/spec/support/resources/vendors/DKBenchmarkUnsafe/DKBenchmark.vendorspec +11 -0
  51. data/spec/support/temp_project.rb +21 -0
  52. data/spec/vendor/api_spec.rb +25 -0
  53. data/spec/vendor/cli/auth_spec.rb +54 -0
  54. data/spec/vendor/config_spec.rb +62 -0
  55. data/spec/vendor/vendor_spec/builder_spec.rb +86 -0
  56. data/spec/vendor/vendor_spec/dsl_spec.rb +67 -0
  57. data/spec/vendor/vendor_spec/loader_spec.rb +41 -0
  58. data/spec/vendor/xcode/object_spec.rb +76 -0
  59. data/spec/vendor/xcode/objects/pbx_project_spec.rb +26 -0
  60. data/spec/vendor/xcode/project_spec.rb +211 -0
  61. data/vendor.gemspec +33 -0
  62. metadata +234 -0
@@ -0,0 +1,130 @@
1
+ require 'json'
2
+
3
+ module Vendor::XCode
4
+
5
+ class Project
6
+
7
+ require 'fileutils'
8
+
9
+ attr_reader :object_version
10
+ attr_reader :archive_version
11
+ attr_reader :objects
12
+ attr_reader :root_object
13
+
14
+ def initialize(project_folder)
15
+ @project_folder = project_folder
16
+ @pbxproject = ::File.join(project_folder, "project.pbxproj")
17
+
18
+ reload
19
+ end
20
+
21
+ def reload
22
+ # We switch between our custom PList converter and the JSON format
23
+ # because the custom implementation isn't very reliable. We use it mainly
24
+ # so the gem can run on systems that don't have plutil installed (like our
25
+ # CI server). The plutil app is far more reliable.
26
+ if RUBY_PLATFORM !=~ /darwin/ || ENV['PARSER'] == 'custom'
27
+ contents = File.readlines(@pbxproject).join("\n")
28
+ parsed = Vendor::Plist.parse_ascii(contents)
29
+ else
30
+ parsed = JSON.parse(`plutil -convert json -o - "#{@pbxproject}"`)
31
+ end
32
+
33
+ @object_version = parsed['objectVersion'].to_i
34
+ @archive_version = parsed['archiveVersion'].to_i
35
+
36
+ @objects_by_id = {}
37
+
38
+ @objects = parsed['objects'].map do |id, attributes|
39
+ klass = Vendor::XCode::Objects.const_get(attributes['isa'])
40
+
41
+ @objects_by_id[id] = klass.new(:project => self, :id => id, :attributes => attributes)
42
+ end
43
+
44
+ @root_object = @objects_by_id[parsed['rootObject']]
45
+ end
46
+
47
+ def find_object(id)
48
+ @objects_by_id[id]
49
+ end
50
+
51
+ def find_target(name)
52
+ root_object.targets.find { |x| x.name == name }
53
+ end
54
+
55
+ def find_and_make_group(path)
56
+ current = root_object.main_group
57
+
58
+ path.split("/").each do |name|
59
+ group = current.children.find { |x| x.name == name }
60
+
61
+ unless group
62
+ group = Vendor::XCode::Objects::PBXGroup.new(:project => self,
63
+ :id => Vendor::XCode::Object.generate_id,
64
+ :attributes => { 'path' => name, 'sourceTree' => '<group>', 'children' => [] })
65
+
66
+ @objects_by_id[group.id] = group
67
+
68
+ # This is hacky
69
+ current.attributes['children'] << group.id
70
+ end
71
+
72
+ current = group
73
+ end
74
+
75
+ current
76
+ end
77
+
78
+ def add_file(options)
79
+ require_options options, :targets, :path, :file
80
+
81
+ # Ensure file exists
82
+ raise StandardError.new("Could not find file `#{options[:file]}`") unless File.exists?(options[:file])
83
+
84
+ # Ensure the path exists
85
+ path = File.join(@project_folder, "..", options[:path])
86
+ FileUtils.mkdir_p path
87
+
88
+ # Copy the file
89
+ name = File.basename(options[:file])
90
+ FileUtils.cp options[:file], File.join(path, name)
91
+
92
+ # Add the file to XCode
93
+ group = find_and_make_group(options[:path])
94
+ relative_path = File.join(options[:path], name)
95
+ file_type = Vendor::XCode::Objects::PBXFileReference.file_type_from_extension(File.extname(options[:file]))
96
+
97
+ file = Vendor::XCode::Objects::PBXFileReference.new(:project => self,
98
+ :id => Vendor::XCode::Object.generate_id,
99
+ :attributes => { 'path' => name, 'lastKnownFileType' => file_type, 'sourceTree' => '<group>' })
100
+
101
+ group.attributes['children'] << file.id
102
+
103
+ @objects_by_id[file.id] = file
104
+ end
105
+
106
+ def to_ascii_plist
107
+ plist = { :archiveVersion => archive_version,
108
+ :classes => {},
109
+ :objectVersion => object_version,
110
+ :objects => @objects_by_id,
111
+ :rootObject => @root_object.id }.to_ascii_plist
112
+
113
+ "// !$*UTF8*$!\n" << plist
114
+ end
115
+
116
+ def save
117
+ open(@pbxproject, 'w+') do |f|
118
+ f << to_ascii_plist
119
+ end
120
+ end
121
+
122
+ private
123
+
124
+ def require_options(options, *keys)
125
+ keys.each { |k| raise StandardError.new("Missing :#{k} option") unless options[k] }
126
+ end
127
+
128
+ end
129
+
130
+ end
data/lib/vendor.rb ADDED
@@ -0,0 +1,33 @@
1
+ $:.push File.expand_path("../", __FILE__)
2
+
3
+ require "vendor/version"
4
+ require "vendor/plist"
5
+ require "vendor/config"
6
+ require "vendor/api"
7
+
8
+ require "vendor/vendor_spec/builder"
9
+ require "vendor/vendor_spec/dsl"
10
+ require "vendor/vendor_spec/loader"
11
+
12
+ require "vendor/extensions/array"
13
+ require "vendor/extensions/hash"
14
+ require "vendor/extensions/fixnum"
15
+ require "vendor/extensions/string"
16
+
17
+ require "vendor/xcode/object"
18
+ require "vendor/xcode/project"
19
+
20
+ require "vendor/xcode/objects/pbx_project"
21
+ require "vendor/xcode/objects/pbx_file_reference"
22
+ require "vendor/xcode/objects/pbx_group"
23
+ require "vendor/xcode/objects/pbx_sources_build_phase"
24
+ require "vendor/xcode/objects/pbx_build_file"
25
+ require "vendor/xcode/objects/pbx_frameworks_build_phase"
26
+ require "vendor/xcode/objects/pbx_resources_build_phase"
27
+ require "vendor/xcode/objects/pbx_native_target"
28
+ require "vendor/xcode/objects/pbx_container_item_proxy"
29
+ require "vendor/xcode/objects/pbx_target_dependency"
30
+ require "vendor/xcode/objects/pbx_variant_group"
31
+ require "vendor/xcode/objects/pbx_shell_script_build_phase"
32
+ require "vendor/xcode/objects/xc_build_configuration"
33
+ require "vendor/xcode/objects/xc_configuration_list"
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+
4
+ require './lib/vendor'
5
+ require './lib/vendor/cli'
6
+
7
+ Dir["spec/support/**/*.rb"].each { |f| require "./#{f}" }
8
+
9
+ PROJECT_RESOURCE_PATH = File.join(File.dirname(__FILE__), "support", "resources", "projects")
10
+ FILE_RESOURCE_PATH = File.join(File.dirname(__FILE__), "support", "resources", "files")
11
+ VENDOR_RESOURCE_PATH = File.join(File.dirname(__FILE__), "support", "resources", "vendors")
12
+
13
+ TEMP_PROJECT_PATH = File.join(File.dirname(__FILE__), "..", "tmp")
14
+
15
+ TempProject.cleanup
16
+
17
+ Vendor::Config.directory = File.expand_path(File.join(__FILE__, "..", "..", "tmp", "config"))
@@ -0,0 +1,12 @@
1
+ require 'fakeweb'
2
+
3
+ FakeWeb.register_uri :get, "http://keithpitt:password@vendorage.com/users/keithpitt/api_key.json",
4
+ :body => { :api_key => "secret" }.to_json
5
+
6
+ FakeWeb.register_uri :get, "http://keithpitt:wrong@vendorage.com/users/keithpitt/api_key.json",
7
+ :status => 401
8
+
9
+ FakeWeb.register_uri :get, "http://keithpitt:error@vendorage.com/users/keithpitt/api_key.json",
10
+ :status => 500
11
+
12
+ FakeWeb.allow_net_connect = false
@@ -0,0 +1,13 @@
1
+ //
2
+ // SecondViewController.h
3
+ // TabBarWithUnitTests
4
+ //
5
+ // Created by Keith Pitt on 6/09/11.
6
+ // Copyright 2011 __MyCompanyName__. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+
11
+ @interface SecondViewController : UIViewController
12
+
13
+ @end
@@ -0,0 +1,43 @@
1
+ //
2
+ // SecondViewController.m
3
+ // TabBarWithUnitTests
4
+ //
5
+ // Created by Keith Pitt on 6/09/11.
6
+ // Copyright 2011 __MyCompanyName__. All rights reserved.
7
+ //
8
+
9
+ #import "SecondViewController.h"
10
+
11
+ @implementation SecondViewController
12
+
13
+ /*
14
+ // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
15
+ - (void)viewDidLoad
16
+ {
17
+ [super viewDidLoad];
18
+ }
19
+ */
20
+
21
+ - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
22
+ {
23
+ // Return YES for supported orientations
24
+ return (interfaceOrientation == UIInterfaceOrientationPortrait);
25
+ }
26
+
27
+ - (void)didReceiveMemoryWarning
28
+ {
29
+ // Releases the view if it doesn't have a superview.
30
+ [super didReceiveMemoryWarning];
31
+
32
+ // Release any cached data, images, etc. that aren't in use.
33
+ }
34
+
35
+ - (void)viewDidUnload
36
+ {
37
+ [super viewDidUnload];
38
+
39
+ // Release any retained subviews of the main view.
40
+ // e.g. self.myOutlet = nil;
41
+ }
42
+
43
+ @end
@@ -0,0 +1,320 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 537874B014010A0A00D9B746 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 537874AF14010A0A00D9B746 /* main.m */; };
11
+ 537874BD14010A1F00D9B746 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 537874BC14010A1F00D9B746 /* UIKit.framework */; };
12
+ 537874BF14010A2500D9B746 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 537874BE14010A2500D9B746 /* Foundation.framework */; };
13
+ 537874D514010A5700D9B746 /* Cedar-iPhone.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 537874C114010A5700D9B746 /* Cedar-iPhone.framework */; };
14
+ 537874D614010A5700D9B746 /* libExpecta-ios-universal.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 537874D214010A5700D9B746 /* libExpecta-ios-universal.a */; };
15
+ /* End PBXBuildFile section */
16
+
17
+ /* Begin PBXFileReference section */
18
+ 5378749F14010A0A00D9B746 /* Specs.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Specs.app; sourceTree = BUILT_PRODUCTS_DIR; };
19
+ 537874AB14010A0A00D9B746 /* Specs-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Specs-Info.plist"; sourceTree = "<group>"; };
20
+ 537874AF14010A0A00D9B746 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
21
+ 537874B114010A0A00D9B746 /* Specs-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Specs-Prefix.pch"; sourceTree = "<group>"; };
22
+ 537874BC14010A1F00D9B746 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
23
+ 537874BE14010A2500D9B746 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
24
+ 537874C114010A5700D9B746 /* Cedar-iPhone.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = "Cedar-iPhone.framework"; sourceTree = "<group>"; };
25
+ 537874C314010A5700D9B746 /* Expecta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Expecta.h; sourceTree = "<group>"; };
26
+ 537874C414010A5700D9B746 /* ExpectaSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExpectaSupport.h; sourceTree = "<group>"; };
27
+ 537874C514010A5700D9B746 /* EXPExpect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXPExpect.h; sourceTree = "<group>"; };
28
+ 537874C614010A5700D9B746 /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXPMatcherHelpers.h; sourceTree = "<group>"; };
29
+ 537874C714010A5700D9B746 /* EXPMatchers+toBeFalsy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeFalsy.h"; sourceTree = "<group>"; };
30
+ 537874C814010A5700D9B746 /* EXPMatchers+toBeIdenticalTo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeIdenticalTo.h"; sourceTree = "<group>"; };
31
+ 537874C914010A5700D9B746 /* EXPMatchers+toBeInstanceOf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeInstanceOf.h"; sourceTree = "<group>"; };
32
+ 537874CA14010A5700D9B746 /* EXPMatchers+toBeKindOf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeKindOf.h"; sourceTree = "<group>"; };
33
+ 537874CB14010A5700D9B746 /* EXPMatchers+toBeNil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeNil.h"; sourceTree = "<group>"; };
34
+ 537874CC14010A5700D9B746 /* EXPMatchers+toBeSubclassOf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeSubclassOf.h"; sourceTree = "<group>"; };
35
+ 537874CD14010A5700D9B746 /* EXPMatchers+toBeTruthy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeTruthy.h"; sourceTree = "<group>"; };
36
+ 537874CE14010A5700D9B746 /* EXPMatchers+toContain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toContain.h"; sourceTree = "<group>"; };
37
+ 537874CF14010A5700D9B746 /* EXPMatchers+toEqual.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toEqual.h"; sourceTree = "<group>"; };
38
+ 537874D014010A5700D9B746 /* EXPMatchers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXPMatchers.h; sourceTree = "<group>"; };
39
+ 537874D114010A5700D9B746 /* EXPUnsupportedObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EXPUnsupportedObject.h; sourceTree = "<group>"; };
40
+ 537874D214010A5700D9B746 /* libExpecta-ios-universal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libExpecta-ios-universal.a"; sourceTree = "<group>"; };
41
+ 537874D314010A5700D9B746 /* NSObject+Expecta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+Expecta.h"; sourceTree = "<group>"; };
42
+ 537874D414010A5700D9B746 /* NSValue+Expecta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSValue+Expecta.h"; sourceTree = "<group>"; };
43
+ /* End PBXFileReference section */
44
+
45
+ /* Begin PBXFrameworksBuildPhase section */
46
+ 5378749C14010A0A00D9B746 /* Frameworks */ = {
47
+ isa = PBXFrameworksBuildPhase;
48
+ buildActionMask = 2147483647;
49
+ files = (
50
+ 537874BF14010A2500D9B746 /* Foundation.framework in Frameworks */,
51
+ 537874BD14010A1F00D9B746 /* UIKit.framework in Frameworks */,
52
+ 537874D514010A5700D9B746 /* Cedar-iPhone.framework in Frameworks */,
53
+ 537874D614010A5700D9B746 /* libExpecta-ios-universal.a in Frameworks */,
54
+ );
55
+ runOnlyForDeploymentPostprocessing = 0;
56
+ };
57
+ /* End PBXFrameworksBuildPhase section */
58
+
59
+ /* Begin PBXGroup section */
60
+ 5378747D140109AE00D9B746 = {
61
+ isa = PBXGroup;
62
+ children = (
63
+ 537874A914010A0A00D9B746 /* Specs */,
64
+ 537874C014010A5700D9B746 /* External */,
65
+ 537874A214010A0A00D9B746 /* Frameworks */,
66
+ 537874A014010A0A00D9B746 /* Products */,
67
+ );
68
+ sourceTree = "<group>";
69
+ };
70
+ 537874A014010A0A00D9B746 /* Products */ = {
71
+ isa = PBXGroup;
72
+ children = (
73
+ 5378749F14010A0A00D9B746 /* Specs.app */,
74
+ );
75
+ name = Products;
76
+ sourceTree = "<group>";
77
+ };
78
+ 537874A214010A0A00D9B746 /* Frameworks */ = {
79
+ isa = PBXGroup;
80
+ children = (
81
+ 537874BE14010A2500D9B746 /* Foundation.framework */,
82
+ 537874BC14010A1F00D9B746 /* UIKit.framework */,
83
+ );
84
+ name = Frameworks;
85
+ sourceTree = "<group>";
86
+ };
87
+ 537874A914010A0A00D9B746 /* Specs */ = {
88
+ isa = PBXGroup;
89
+ children = (
90
+ 537874AA14010A0A00D9B746 /* Supporting Files */,
91
+ );
92
+ path = Specs;
93
+ sourceTree = "<group>";
94
+ };
95
+ 537874AA14010A0A00D9B746 /* Supporting Files */ = {
96
+ isa = PBXGroup;
97
+ children = (
98
+ 537874AB14010A0A00D9B746 /* Specs-Info.plist */,
99
+ 537874AF14010A0A00D9B746 /* main.m */,
100
+ 537874B114010A0A00D9B746 /* Specs-Prefix.pch */,
101
+ );
102
+ name = "Supporting Files";
103
+ sourceTree = "<group>";
104
+ };
105
+ 537874C014010A5700D9B746 /* External */ = {
106
+ isa = PBXGroup;
107
+ children = (
108
+ 537874C114010A5700D9B746 /* Cedar-iPhone.framework */,
109
+ 537874C214010A5700D9B746 /* Expecta */,
110
+ );
111
+ path = External;
112
+ sourceTree = "<group>";
113
+ };
114
+ 537874C214010A5700D9B746 /* Expecta */ = {
115
+ isa = PBXGroup;
116
+ children = (
117
+ 537874C314010A5700D9B746 /* Expecta.h */,
118
+ 537874C414010A5700D9B746 /* ExpectaSupport.h */,
119
+ 537874C514010A5700D9B746 /* EXPExpect.h */,
120
+ 537874C614010A5700D9B746 /* EXPMatcherHelpers.h */,
121
+ 537874C714010A5700D9B746 /* EXPMatchers+toBeFalsy.h */,
122
+ 537874C814010A5700D9B746 /* EXPMatchers+toBeIdenticalTo.h */,
123
+ 537874C914010A5700D9B746 /* EXPMatchers+toBeInstanceOf.h */,
124
+ 537874CA14010A5700D9B746 /* EXPMatchers+toBeKindOf.h */,
125
+ 537874CB14010A5700D9B746 /* EXPMatchers+toBeNil.h */,
126
+ 537874CC14010A5700D9B746 /* EXPMatchers+toBeSubclassOf.h */,
127
+ 537874CD14010A5700D9B746 /* EXPMatchers+toBeTruthy.h */,
128
+ 537874CE14010A5700D9B746 /* EXPMatchers+toContain.h */,
129
+ 537874CF14010A5700D9B746 /* EXPMatchers+toEqual.h */,
130
+ 537874D014010A5700D9B746 /* EXPMatchers.h */,
131
+ 537874D114010A5700D9B746 /* EXPUnsupportedObject.h */,
132
+ 537874D214010A5700D9B746 /* libExpecta-ios-universal.a */,
133
+ 537874D314010A5700D9B746 /* NSObject+Expecta.h */,
134
+ 537874D414010A5700D9B746 /* NSValue+Expecta.h */,
135
+ );
136
+ path = Expecta;
137
+ sourceTree = "<group>";
138
+ };
139
+ /* End PBXGroup section */
140
+
141
+ /* Begin PBXNativeTarget section */
142
+ 5378749E14010A0A00D9B746 /* Specs */ = {
143
+ isa = PBXNativeTarget;
144
+ buildConfigurationList = 537874BA14010A0A00D9B746 /* Build configuration list for PBXNativeTarget "Specs" */;
145
+ buildPhases = (
146
+ 5378749B14010A0A00D9B746 /* Sources */,
147
+ 5378749C14010A0A00D9B746 /* Frameworks */,
148
+ 5378749D14010A0A00D9B746 /* Resources */,
149
+ );
150
+ buildRules = (
151
+ );
152
+ dependencies = (
153
+ );
154
+ name = Specs;
155
+ productName = Specs;
156
+ productReference = 5378749F14010A0A00D9B746 /* Specs.app */;
157
+ productType = "com.apple.product-type.application";
158
+ };
159
+ /* End PBXNativeTarget section */
160
+
161
+ /* Begin PBXProject section */
162
+ 5378747F140109AE00D9B746 /* Project object */ = {
163
+ isa = PBXProject;
164
+ buildConfigurationList = 53787482140109AE00D9B746 /* Build configuration list for PBXProject "ProjectName" */;
165
+ compatibilityVersion = "Xcode 3.2";
166
+ developmentRegion = English;
167
+ hasScannedForEncodings = 0;
168
+ knownRegions = (
169
+ en,
170
+ );
171
+ mainGroup = 5378747D140109AE00D9B746;
172
+ productRefGroup = 537874A014010A0A00D9B746 /* Products */;
173
+ projectDirPath = "";
174
+ projectRoot = "";
175
+ targets = (
176
+ 5378749E14010A0A00D9B746 /* Specs */,
177
+ );
178
+ };
179
+ /* End PBXProject section */
180
+
181
+ /* Begin PBXResourcesBuildPhase section */
182
+ 5378749D14010A0A00D9B746 /* Resources */ = {
183
+ isa = PBXResourcesBuildPhase;
184
+ buildActionMask = 2147483647;
185
+ files = (
186
+ );
187
+ runOnlyForDeploymentPostprocessing = 0;
188
+ };
189
+ /* End PBXResourcesBuildPhase section */
190
+
191
+ /* Begin PBXSourcesBuildPhase section */
192
+ 5378749B14010A0A00D9B746 /* Sources */ = {
193
+ isa = PBXSourcesBuildPhase;
194
+ buildActionMask = 2147483647;
195
+ files = (
196
+ 537874B014010A0A00D9B746 /* main.m in Sources */,
197
+ );
198
+ runOnlyForDeploymentPostprocessing = 0;
199
+ };
200
+ /* End PBXSourcesBuildPhase section */
201
+
202
+ /* Begin XCBuildConfiguration section */
203
+ 53787484140109AE00D9B746 /* Debug */ = {
204
+ isa = XCBuildConfiguration;
205
+ buildSettings = {
206
+ };
207
+ name = Debug;
208
+ };
209
+ 53787485140109AE00D9B746 /* Release */ = {
210
+ isa = XCBuildConfiguration;
211
+ buildSettings = {
212
+ };
213
+ name = Release;
214
+ };
215
+ 537874B814010A0A00D9B746 /* Debug */ = {
216
+ isa = XCBuildConfiguration;
217
+ buildSettings = {
218
+ ALWAYS_SEARCH_USER_PATHS = NO;
219
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
220
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
221
+ COPY_PHASE_STRIP = NO;
222
+ FRAMEWORK_SEARCH_PATHS = (
223
+ "$(inherited)",
224
+ "\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
225
+ "\"$(SRCROOT)/External\"",
226
+ );
227
+ GCC_C_LANGUAGE_STANDARD = gnu99;
228
+ GCC_DYNAMIC_NO_PIC = NO;
229
+ GCC_OPTIMIZATION_LEVEL = 0;
230
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
231
+ GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
232
+ GCC_PREPROCESSOR_DEFINITIONS = (
233
+ "DEBUG=1",
234
+ "$(inherited)",
235
+ );
236
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
237
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
238
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
239
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
240
+ GCC_WARN_UNUSED_VARIABLE = YES;
241
+ INFOPLIST_FILE = "Specs/Specs-Info.plist";
242
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
243
+ LIBRARY_SEARCH_PATHS = (
244
+ "$(inherited)",
245
+ "\"$(SRCROOT)/External/Expecta\"",
246
+ );
247
+ OTHER_LDFLAGS = (
248
+ "-lstdc++",
249
+ "-ObjC",
250
+ "-all_load",
251
+ );
252
+ PRODUCT_NAME = "$(TARGET_NAME)";
253
+ SDKROOT = iphoneos;
254
+ WRAPPER_EXTENSION = app;
255
+ };
256
+ name = Debug;
257
+ };
258
+ 537874B914010A0A00D9B746 /* Release */ = {
259
+ isa = XCBuildConfiguration;
260
+ buildSettings = {
261
+ ALWAYS_SEARCH_USER_PATHS = NO;
262
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
263
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
264
+ COPY_PHASE_STRIP = YES;
265
+ FRAMEWORK_SEARCH_PATHS = (
266
+ "$(inherited)",
267
+ "\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
268
+ "\"$(SRCROOT)/External\"",
269
+ );
270
+ GCC_C_LANGUAGE_STANDARD = gnu99;
271
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
272
+ GCC_PREFIX_HEADER = "Specs/Specs-Prefix.pch";
273
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
274
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
275
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
276
+ GCC_WARN_UNUSED_VARIABLE = YES;
277
+ INFOPLIST_FILE = "Specs/Specs-Info.plist";
278
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
279
+ LIBRARY_SEARCH_PATHS = (
280
+ "$(inherited)",
281
+ "\"$(SRCROOT)/External/Expecta\"",
282
+ );
283
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
284
+ OTHER_LDFLAGS = (
285
+ "-lstdc++",
286
+ "-ObjC",
287
+ "-all_load",
288
+ );
289
+ PRODUCT_NAME = "$(TARGET_NAME)";
290
+ SDKROOT = iphoneos;
291
+ VALIDATE_PRODUCT = YES;
292
+ WRAPPER_EXTENSION = app;
293
+ };
294
+ name = Release;
295
+ };
296
+ /* End XCBuildConfiguration section */
297
+
298
+ /* Begin XCConfigurationList section */
299
+ 53787482140109AE00D9B746 /* Build configuration list for PBXProject "ProjectName" */ = {
300
+ isa = XCConfigurationList;
301
+ buildConfigurations = (
302
+ 53787484140109AE00D9B746 /* Debug */,
303
+ 53787485140109AE00D9B746 /* Release */,
304
+ );
305
+ defaultConfigurationIsVisible = 0;
306
+ defaultConfigurationName = Release;
307
+ };
308
+ 537874BA14010A0A00D9B746 /* Build configuration list for PBXNativeTarget "Specs" */ = {
309
+ isa = XCConfigurationList;
310
+ buildConfigurations = (
311
+ 537874B814010A0A00D9B746 /* Debug */,
312
+ 537874B914010A0A00D9B746 /* Release */,
313
+ );
314
+ defaultConfigurationIsVisible = 0;
315
+ defaultConfigurationName = Release;
316
+ };
317
+ /* End XCConfigurationList section */
318
+ };
319
+ rootObject = 5378747F140109AE00D9B746 /* Project object */;
320
+ }