iCuke 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -25,6 +25,8 @@ begin
25
25
  gem.add_dependency "rake", ">= 0"
26
26
  gem.add_dependency "background_process"
27
27
  gem.extensions = ['ext/Rakefile']
28
+ gem.files.include "ext/WaxSim/**/*"
29
+ gem.files.exclude "ext/WaxSim/build/**/*"
28
30
  end
29
31
  Jeweler::GemcutterTasks.new
30
32
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.5
1
+ 0.6.6
data/ext/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
1
  task :install do
2
- sh "cd .. && git submodule init"
3
- sh "cd .. && git submodule update"
2
+ if File.exist?(File.join('..','.git'))
3
+ sh "cd .. && git submodule init"
4
+ sh "cd .. && git submodule update"
5
+ end
4
6
  sh "cd WaxSim && xcodebuild install DSTROOT=../../ INSTALL_PATH=/ext/bin"
5
7
  sh "cd iCuke && rake"
6
8
  end
@@ -0,0 +1,31 @@
1
+ //
2
+ // Simulator.h
3
+ // Sim
4
+ //
5
+ // Created by ProbablyInteractive on 7/28/09.
6
+ // Copyright 2009 Probably Interactive. All rights reserved.
7
+ //
8
+
9
+ #import <Cocoa/Cocoa.h>
10
+ #import "iPhoneSimulatorRemoteClient.h"
11
+
12
+ @class DTiPhoneSimulatorSystemRoot;
13
+
14
+ @interface Simulator : NSObject <DTiPhoneSimulatorSessionDelegate> {
15
+ NSString *_appPath;
16
+ DTiPhoneSimulatorSystemRoot *_sdk;
17
+ NSNumber *_family;
18
+ DTiPhoneSimulatorSession* _session;
19
+ NSDictionary *_env;
20
+ NSArray *_args;
21
+ }
22
+
23
+ @property (nonatomic, readonly) DTiPhoneSimulatorSession* session;
24
+
25
+ + (NSArray *)availableSDKs;
26
+
27
+ - (id)initWithAppPath:(NSString *)appPath sdk:(NSString *)sdk family:(NSString *)family env:(NSDictionary *)env args:(NSArray *)args;
28
+ - (int)launch;
29
+ - (void)end;
30
+
31
+ @end
@@ -0,0 +1,129 @@
1
+ //
2
+ //
3
+ // Sim
4
+ //
5
+ // Created by ProbablyInteractive on 7/28/09.
6
+ // Copyright 2009 Probably Interactive. All rights reserved.
7
+ //
8
+
9
+ #import "Simulator.h"
10
+
11
+ #include <sys/param.h>
12
+ #include <objc/runtime.h>
13
+
14
+ #define WaxLog(format, args...) \
15
+ fprintf(stderr, "%s\n", [[NSString stringWithFormat:(format), ## args] UTF8String])
16
+
17
+ @implementation Simulator
18
+
19
+ @synthesize session=_session;
20
+
21
+ - (id)initWithAppPath:(NSString *)appPath sdk:(NSString *)sdk family:(NSString *)family env:(NSDictionary *)env args:(NSArray *)args {
22
+ self = [super init];
23
+
24
+ NSFileManager *fileManager = [NSFileManager defaultManager];
25
+ if (![appPath isAbsolutePath]) {
26
+ appPath = [[fileManager currentDirectoryPath] stringByAppendingPathComponent:appPath];
27
+ }
28
+
29
+ _appPath = [appPath retain];
30
+
31
+ if (![fileManager fileExistsAtPath:_appPath]) {
32
+ WaxLog(@"App path '%@' does not exist!", _appPath);
33
+ exit(EXIT_FAILURE);
34
+ }
35
+
36
+ if (!sdk) _sdk = [[DTiPhoneSimulatorSystemRoot defaultRoot] retain];
37
+ else {
38
+ _sdk = [[DTiPhoneSimulatorSystemRoot rootWithSDKVersion:sdk] retain];
39
+ }
40
+
41
+ if (!_sdk) {
42
+ WaxLog(@"Unknown sdk '%@'", sdk);
43
+ WaxLog(@"Available sdks are...");
44
+ for (id root in [DTiPhoneSimulatorSystemRoot knownRoots]) {
45
+ WaxLog(@" %@", [root sdkVersion]);
46
+ }
47
+
48
+ exit(EXIT_FAILURE);
49
+ }
50
+
51
+ if ([family isEqualToString: @"ipad"]) {
52
+ _family = [NSNumber numberWithInt: 2];
53
+ } else {
54
+ _family = [NSNumber numberWithInt: 1];
55
+ }
56
+
57
+ _env = [env retain];
58
+ _args = [args retain];
59
+
60
+ return self;
61
+ }
62
+
63
+ + (NSArray *)availableSDKs {
64
+ NSMutableArray *sdks = [NSMutableArray array];
65
+ for (id root in [DTiPhoneSimulatorSystemRoot knownRoots]) {
66
+ [sdks addObject:[root sdkVersion]];
67
+ }
68
+
69
+ return sdks;
70
+ }
71
+
72
+ - (int)launch {
73
+ WaxLog(@"Launching '%@' on '%@'", _appPath, [_sdk sdkDisplayName]);
74
+
75
+ DTiPhoneSimulatorApplicationSpecifier *appSpec = [DTiPhoneSimulatorApplicationSpecifier specifierWithApplicationPath:_appPath];
76
+ if (!appSpec) {
77
+ WaxLog(@"Could not load application specifier for '%@'", _appPath);
78
+ return EXIT_FAILURE;
79
+ }
80
+
81
+ DTiPhoneSimulatorSessionConfig *config = [[DTiPhoneSimulatorSessionConfig alloc] init];
82
+ [config setApplicationToSimulateOnStart:appSpec];
83
+ [config setSimulatedSystemRoot:_sdk];
84
+ [config setSimulatedDeviceFamily:_family];
85
+ [config setSimulatedApplicationShouldWaitForDebugger:NO];
86
+ [config setSimulatedApplicationLaunchArgs:_args];
87
+ [config setSimulatedApplicationLaunchEnvironment:_env];
88
+ [config setLocalizedClientName:@"iCuke"];
89
+
90
+ // Make the simulator output to the current STDERR
91
+ // We mix them together to avoid buffering issues on STDOUT
92
+ char path[MAXPATHLEN];
93
+
94
+ fcntl(STDERR_FILENO, F_GETPATH, &path);
95
+ [config setSimulatedApplicationStdOutPath:[NSString stringWithUTF8String:path]];
96
+ [config setSimulatedApplicationStdErrPath:[NSString stringWithUTF8String:path]];
97
+
98
+ _session = [[DTiPhoneSimulatorSession alloc] init];
99
+ [_session setDelegate:self];
100
+ [_session setSimulatedApplicationPID:[NSNumber numberWithInt:35]];
101
+
102
+ NSError *error;
103
+ if (![_session requestStartWithConfig:config timeout:30 error:&error]) {
104
+ WaxLog(@"Could not start simulator session: %@", [error localizedDescription]);
105
+ return EXIT_FAILURE;
106
+ }
107
+
108
+ return EXIT_SUCCESS;
109
+ }
110
+
111
+ - (void)end {
112
+ [_session requestEndWithTimeout:0];
113
+ }
114
+
115
+ // DTiPhoneSimulatorSession Delegate
116
+ // ---------------------------------
117
+ - (void)session:(DTiPhoneSimulatorSession *)session didStart:(BOOL)started withError:(NSError *)error {
118
+ if (!started) {
119
+ WaxLog(@"Session failed to start. %@", [error localizedDescription]);
120
+ exit(EXIT_FAILURE);
121
+ }
122
+ }
123
+
124
+ - (void)session:(DTiPhoneSimulatorSession *)session didEndWithError:(NSError *)error {
125
+ WaxLog(@"Session ended with error. %@", [error localizedDescription]);
126
+ if ([error code] != 2) exit(EXIT_FAILURE); // if it is a timeout error, that's cool. We are probably rebooting
127
+ }
128
+
129
+ @end
@@ -0,0 +1,110 @@
1
+ #import <AppKit/AppKit.h>
2
+ #import "iPhoneSimulatorRemoteClient.h"
3
+ #import "Simulator.h"
4
+ #import "termios.h"
5
+
6
+ static BOOL gReset = false;
7
+
8
+ void printUsage();
9
+ void simulate(NSString *sdk, NSString *family, NSString *appPath, NSDictionary *environment, NSArray *additionalArgs);
10
+ void resetSignal(int sig);
11
+
12
+ int main(int argc, char *argv[]) {
13
+ signal(SIGQUIT, resetSignal);
14
+
15
+ int c;
16
+ char *sdk = nil;
17
+ char *family = nil;
18
+ char *appPath = nil;
19
+ NSMutableArray *additionalArgs = [NSMutableArray array];
20
+ NSMutableDictionary *environment = [NSMutableDictionary dictionary];
21
+ NSString *environment_variable;
22
+ NSArray *environment_variable_parts;
23
+
24
+ while ((c = getopt(argc, argv, "e:s:f:ah")) != -1) {
25
+ switch(c) {
26
+ case 'e':
27
+ environment_variable = [NSString stringWithCString:optarg encoding:NSUTF8StringEncoding];
28
+ environment_variable_parts = [environment_variable componentsSeparatedByString:@"="];
29
+
30
+ [environment setObject:[environment_variable_parts objectAtIndex:1] forKey:[environment_variable_parts objectAtIndex:0]];
31
+ break;
32
+ case 's':
33
+ sdk = optarg;
34
+ break;
35
+ case 'f':
36
+ family = optarg;
37
+ break;
38
+ case 'a':
39
+ fprintf(stdout, "Available SDK Versions.\n", optopt);
40
+ for (NSString *sdkVersion in [Simulator availableSDKs]) {
41
+ fprintf(stderr, " %s\n", [sdkVersion UTF8String]);
42
+ }
43
+ return 1;
44
+ case 'h':
45
+ printUsage();
46
+ return 1;
47
+ case '?':
48
+ if (optopt == 's' || optopt == 'f') {
49
+ fprintf(stderr, "Option -%c requires an argument.\n", optopt);
50
+ printUsage();
51
+ }
52
+ else {
53
+ fprintf(stderr, "Unknown option `-%c'.\n", optopt);
54
+ printUsage();
55
+ }
56
+ return 1;
57
+ break;
58
+ default:
59
+ abort ();
60
+ }
61
+
62
+ }
63
+
64
+ if (argc > optind) {
65
+ appPath = argv[optind++];
66
+
67
+ // Additional args are sent to app
68
+ for (int i = optind; i < argc; i++) {
69
+ [additionalArgs addObject:[NSString stringWithUTF8String:argv[i]]];
70
+ }
71
+ }
72
+ else {
73
+ fprintf(stderr, "No app-path was specified!\n");
74
+ printUsage();
75
+ return 1;
76
+ }
77
+
78
+
79
+ NSString *sdkString = sdk ? [NSString stringWithUTF8String:sdk] : nil;
80
+ NSString *familyString = family ? [NSString stringWithUTF8String:family] : nil;
81
+ NSString *appPathString = [NSString stringWithUTF8String:appPath];
82
+
83
+ simulate(sdkString, familyString, appPathString, environment, additionalArgs);
84
+
85
+ return 0;
86
+ }
87
+
88
+ void simulate(NSString *sdk, NSString *family, NSString *appPath, NSDictionary *environment, NSArray *additionalArgs) {
89
+ Simulator *simulator = [[Simulator alloc] initWithAppPath:appPath sdk:sdk family:family env:environment args:additionalArgs];
90
+ [simulator launch];
91
+
92
+ while (!gReset && [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:-1]]) ;
93
+
94
+ [simulator end];
95
+ }
96
+
97
+ void printUsage() {
98
+ fprintf(stderr, "usage: waxsim [options] app-path\n");
99
+ fprintf(stderr, "example: waxsim -s 2.2 /path/to/app.app\n");
100
+ fprintf(stderr, "Available options are:\n");
101
+ fprintf(stderr, "\t-s sdk\tVersion number of sdk to use (-s 3.1)\n");
102
+ fprintf(stderr, "\t-f family\tDevice to use (-f ipad)\n");
103
+ fprintf(stderr, "\t-e VAR=value\tEnvironment variable to set (-e CFFIXED_HOME=/tmp/iphonehome)\n");
104
+ fprintf(stderr, "\t-a \tAvailable SDK's\n");
105
+ fprintf(stderr, "\t-h \tPrints out this wonderful documentation!\n");
106
+ }
107
+
108
+ void resetSignal(int sig) {
109
+ gReset = true;
110
+ }
@@ -0,0 +1,238 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 45;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 048274F11126398C003DFACB /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 048274F01126398C003DFACB /* AppKit.framework */; };
11
+ 048275B2112639B7003DFACB /* Simulator.m in Sources */ = {isa = PBXBuildFile; fileRef = 048275B1112639B7003DFACB /* Simulator.m */; };
12
+ 048275C011263A74003DFACB /* iPhoneSimulatorRemoteClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 048275BF11263A74003DFACB /* iPhoneSimulatorRemoteClient.framework */; };
13
+ 8DD76F9A0486AA7600D96B5E /* WaxSim.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* WaxSim.m */; settings = {ATTRIBUTES = (); }; };
14
+ 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
15
+ /* End PBXBuildFile section */
16
+
17
+ /* Begin PBXCopyFilesBuildPhase section */
18
+ 8DD76F9E0486AA7600D96B5E /* CopyFiles */ = {
19
+ isa = PBXCopyFilesBuildPhase;
20
+ buildActionMask = 8;
21
+ dstPath = /usr/share/man/man1/;
22
+ dstSubfolderSpec = 0;
23
+ files = (
24
+ );
25
+ runOnlyForDeploymentPostprocessing = 1;
26
+ };
27
+ /* End PBXCopyFilesBuildPhase section */
28
+
29
+ /* Begin PBXFileReference section */
30
+ 048274F01126398C003DFACB /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
31
+ 048275AF112639B7003DFACB /* iPhoneSimulatorRemoteClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iPhoneSimulatorRemoteClient.h; path = iPhoneSimulatorRemoteClient/iPhoneSimulatorRemoteClient.h; sourceTree = "<group>"; };
32
+ 048275B0112639B7003DFACB /* Simulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Simulator.h; sourceTree = "<group>"; };
33
+ 048275B1112639B7003DFACB /* Simulator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Simulator.m; sourceTree = "<group>"; };
34
+ 048275BF11263A74003DFACB /* iPhoneSimulatorRemoteClient.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iPhoneSimulatorRemoteClient.framework; path = Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/iPhoneSimulatorRemoteClient.framework; sourceTree = DEVELOPER_DIR; };
35
+ 08FB7796FE84155DC02AAC07 /* WaxSim.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WaxSim.m; sourceTree = "<group>"; };
36
+ 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
37
+ 32A70AAB03705E1F00C91783 /* WaxSim_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaxSim_Prefix.pch; sourceTree = "<group>"; };
38
+ 8DD76FA10486AA7600D96B5E /* waxsim */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = waxsim; sourceTree = BUILT_PRODUCTS_DIR; };
39
+ /* End PBXFileReference section */
40
+
41
+ /* Begin PBXFrameworksBuildPhase section */
42
+ 8DD76F9B0486AA7600D96B5E /* Frameworks */ = {
43
+ isa = PBXFrameworksBuildPhase;
44
+ buildActionMask = 2147483647;
45
+ files = (
46
+ 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */,
47
+ 048274F11126398C003DFACB /* AppKit.framework in Frameworks */,
48
+ 048275C011263A74003DFACB /* iPhoneSimulatorRemoteClient.framework in Frameworks */,
49
+ );
50
+ runOnlyForDeploymentPostprocessing = 0;
51
+ };
52
+ /* End PBXFrameworksBuildPhase section */
53
+
54
+ /* Begin PBXGroup section */
55
+ 08FB7794FE84155DC02AAC07 /* WaxSim */ = {
56
+ isa = PBXGroup;
57
+ children = (
58
+ 08FB7795FE84155DC02AAC07 /* Source */,
59
+ 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
60
+ 1AB674ADFE9D54B511CA2CBB /* Products */,
61
+ );
62
+ name = WaxSim;
63
+ sourceTree = "<group>";
64
+ };
65
+ 08FB7795FE84155DC02AAC07 /* Source */ = {
66
+ isa = PBXGroup;
67
+ children = (
68
+ 32A70AAB03705E1F00C91783 /* WaxSim_Prefix.pch */,
69
+ 08FB7796FE84155DC02AAC07 /* WaxSim.m */,
70
+ 048275B0112639B7003DFACB /* Simulator.h */,
71
+ 048275B1112639B7003DFACB /* Simulator.m */,
72
+ 048275AF112639B7003DFACB /* iPhoneSimulatorRemoteClient.h */,
73
+ );
74
+ name = Source;
75
+ sourceTree = "<group>";
76
+ };
77
+ 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
78
+ isa = PBXGroup;
79
+ children = (
80
+ 048275BF11263A74003DFACB /* iPhoneSimulatorRemoteClient.framework */,
81
+ 048274F01126398C003DFACB /* AppKit.framework */,
82
+ 08FB779EFE84155DC02AAC07 /* Foundation.framework */,
83
+ );
84
+ name = "External Frameworks and Libraries";
85
+ sourceTree = "<group>";
86
+ };
87
+ 1AB674ADFE9D54B511CA2CBB /* Products */ = {
88
+ isa = PBXGroup;
89
+ children = (
90
+ 8DD76FA10486AA7600D96B5E /* waxsim */,
91
+ );
92
+ name = Products;
93
+ sourceTree = "<group>";
94
+ };
95
+ /* End PBXGroup section */
96
+
97
+ /* Begin PBXNativeTarget section */
98
+ 8DD76F960486AA7600D96B5E /* WaxSim */ = {
99
+ isa = PBXNativeTarget;
100
+ buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "WaxSim" */;
101
+ buildPhases = (
102
+ 8DD76F990486AA7600D96B5E /* Sources */,
103
+ 8DD76F9B0486AA7600D96B5E /* Frameworks */,
104
+ 8DD76F9E0486AA7600D96B5E /* CopyFiles */,
105
+ );
106
+ buildRules = (
107
+ );
108
+ dependencies = (
109
+ );
110
+ name = WaxSim;
111
+ productInstallPath = "$(HOME)/bin";
112
+ productName = WaxSim;
113
+ productReference = 8DD76FA10486AA7600D96B5E /* waxsim */;
114
+ productType = "com.apple.product-type.tool";
115
+ };
116
+ /* End PBXNativeTarget section */
117
+
118
+ /* Begin PBXProject section */
119
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
120
+ isa = PBXProject;
121
+ buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "WaxSim" */;
122
+ compatibilityVersion = "Xcode 3.1";
123
+ hasScannedForEncodings = 1;
124
+ mainGroup = 08FB7794FE84155DC02AAC07 /* WaxSim */;
125
+ projectDirPath = "";
126
+ projectRoot = "";
127
+ targets = (
128
+ 8DD76F960486AA7600D96B5E /* WaxSim */,
129
+ );
130
+ };
131
+ /* End PBXProject section */
132
+
133
+ /* Begin PBXSourcesBuildPhase section */
134
+ 8DD76F990486AA7600D96B5E /* Sources */ = {
135
+ isa = PBXSourcesBuildPhase;
136
+ buildActionMask = 2147483647;
137
+ files = (
138
+ 8DD76F9A0486AA7600D96B5E /* WaxSim.m in Sources */,
139
+ 048275B2112639B7003DFACB /* Simulator.m in Sources */,
140
+ );
141
+ runOnlyForDeploymentPostprocessing = 0;
142
+ };
143
+ /* End PBXSourcesBuildPhase section */
144
+
145
+ /* Begin XCBuildConfiguration section */
146
+ 1DEB927508733DD40010E9CD /* Debug */ = {
147
+ isa = XCBuildConfiguration;
148
+ buildSettings = {
149
+ ALWAYS_SEARCH_USER_PATHS = NO;
150
+ COPY_PHASE_STRIP = NO;
151
+ FRAMEWORK_SEARCH_PATHS = (
152
+ "$(inherited)",
153
+ "\"$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks\"",
154
+ );
155
+ GCC_DYNAMIC_NO_PIC = NO;
156
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
157
+ GCC_ENABLE_OBJC_GC = supported;
158
+ GCC_MODEL_TUNING = G5;
159
+ GCC_OPTIMIZATION_LEVEL = 0;
160
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
161
+ GCC_PREFIX_HEADER = WaxSim_Prefix.pch;
162
+ INSTALL_PATH = /usr/local/bin;
163
+ LD_RUNPATH_SEARCH_PATHS = /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks;
164
+ PRODUCT_NAME = waxsim;
165
+ };
166
+ name = Debug;
167
+ };
168
+ 1DEB927608733DD40010E9CD /* Release */ = {
169
+ isa = XCBuildConfiguration;
170
+ buildSettings = {
171
+ ALWAYS_SEARCH_USER_PATHS = NO;
172
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
173
+ FRAMEWORK_SEARCH_PATHS = (
174
+ "$(inherited)",
175
+ "\"$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks\"",
176
+ );
177
+ GCC_ENABLE_OBJC_GC = supported;
178
+ GCC_MODEL_TUNING = G5;
179
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
180
+ GCC_PREFIX_HEADER = WaxSim_Prefix.pch;
181
+ INSTALL_PATH = /usr/local/bin;
182
+ LD_RUNPATH_SEARCH_PATHS = /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks;
183
+ PRODUCT_NAME = waxsim;
184
+ };
185
+ name = Release;
186
+ };
187
+ 1DEB927908733DD40010E9CD /* Debug */ = {
188
+ isa = XCBuildConfiguration;
189
+ buildSettings = {
190
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
191
+ GCC_C_LANGUAGE_STANDARD = gnu99;
192
+ GCC_OPTIMIZATION_LEVEL = 0;
193
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
194
+ GCC_WARN_UNUSED_VARIABLE = YES;
195
+ ONLY_ACTIVE_ARCH = YES;
196
+ PREBINDING = NO;
197
+ SDKROOT = macosx10.6;
198
+ };
199
+ name = Debug;
200
+ };
201
+ 1DEB927A08733DD40010E9CD /* Release */ = {
202
+ isa = XCBuildConfiguration;
203
+ buildSettings = {
204
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
205
+ GCC_C_LANGUAGE_STANDARD = gnu99;
206
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
207
+ GCC_WARN_UNUSED_VARIABLE = YES;
208
+ ONLY_ACTIVE_ARCH = YES;
209
+ PREBINDING = NO;
210
+ SDKROOT = macosx10.6;
211
+ };
212
+ name = Release;
213
+ };
214
+ /* End XCBuildConfiguration section */
215
+
216
+ /* Begin XCConfigurationList section */
217
+ 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "WaxSim" */ = {
218
+ isa = XCConfigurationList;
219
+ buildConfigurations = (
220
+ 1DEB927508733DD40010E9CD /* Debug */,
221
+ 1DEB927608733DD40010E9CD /* Release */,
222
+ );
223
+ defaultConfigurationIsVisible = 0;
224
+ defaultConfigurationName = Release;
225
+ };
226
+ 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "WaxSim" */ = {
227
+ isa = XCConfigurationList;
228
+ buildConfigurations = (
229
+ 1DEB927908733DD40010E9CD /* Debug */,
230
+ 1DEB927A08733DD40010E9CD /* Release */,
231
+ );
232
+ defaultConfigurationIsVisible = 0;
233
+ defaultConfigurationName = Release;
234
+ };
235
+ /* End XCConfigurationList section */
236
+ };
237
+ rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
238
+ }
@@ -0,0 +1,7 @@
1
+ //
2
+ // Prefix header for all source files of the 'WaxSim' target in the 'WaxSim' project.
3
+ //
4
+
5
+ #ifdef __OBJC__
6
+ #import <Foundation/Foundation.h>
7
+ #endif
@@ -0,0 +1,126 @@
1
+ #import <Cocoa/Cocoa.h>
2
+
3
+ /*
4
+ * File: /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/iPhoneSimulatorRemoteClient.framework/Versions/A/iPhoneSimulatorRemoteClient
5
+ * Arch: Intel 80x86 (i386)
6
+ * Current version: 12.0.0, Compatibility version: 1.0.0
7
+ */
8
+
9
+ @class DTiPhoneSimulatorSession;
10
+
11
+ @protocol DTiPhoneSimulatorSessionDelegate
12
+
13
+ - (void) session: (DTiPhoneSimulatorSession *) session didEndWithError: (NSError *) error;
14
+ - (void) session: (DTiPhoneSimulatorSession *) session didStart: (BOOL) started withError: (NSError *) error;
15
+
16
+ @end
17
+
18
+ @interface DTiPhoneSimulatorApplicationSpecifier : NSObject <NSCopying>
19
+ {
20
+ NSString *_appPath;
21
+ NSString *_bundleID;
22
+ }
23
+
24
+ + (id) specifierWithApplicationPath: (NSString *) appPath;
25
+ + (id) specifierWithApplicationBundleIdentifier: (NSString *) bundleID;
26
+ - (NSString *) bundleID;
27
+ - (void) setBundleID: (NSString *) bundleId;
28
+ - (NSString *) appPath;
29
+ - (void) setAppPath: (NSString *) appPath;
30
+
31
+ @end
32
+
33
+ @interface DTiPhoneSimulatorSystemRoot : NSObject <NSCopying>
34
+ {
35
+ NSString *sdkRootPath;
36
+ NSString *sdkVersion;
37
+ NSString *sdkDisplayName;
38
+ }
39
+
40
+ + (id) defaultRoot;
41
+
42
+ + (id)rootWithSDKPath:(NSString *) path;
43
+ + (id)rootWithSDKVersion:(NSString *)version;
44
+
45
+ + (NSArray *) knownRoots;
46
+ - (id)initWithSDKPath:(id)fp8;
47
+ - (id)sdkDisplayName;
48
+ - (void)setSdkDisplayName:(id)fp8;
49
+ - (id)sdkVersion;
50
+ - (void)setSdkVersion:(id)fp8;
51
+ - (id)sdkRootPath;
52
+ - (void)setSdkRootPath:(id)fp8;
53
+
54
+ @end
55
+
56
+
57
+
58
+ @interface DTiPhoneSimulatorSessionConfig : NSObject <NSCopying>
59
+ {
60
+ NSString *_localizedClientName;
61
+ DTiPhoneSimulatorSystemRoot *_simulatedSystemRoot;
62
+ DTiPhoneSimulatorApplicationSpecifier *_applicationToSimulateOnStart;
63
+ NSArray *_simulatedApplicationLaunchArgs;
64
+ NSDictionary *_simulatedApplicationLaunchEnvironment;
65
+ BOOL _simulatedApplicationShouldWaitForDebugger;
66
+ NSString *_simulatedApplicationStdOutPath;
67
+ NSString *_simulatedApplicationStdErrPath;
68
+ }
69
+
70
+ + (NSString *) displayNameForDeviceFamily: (NSNumber *) family;
71
+
72
+ - (id)simulatedApplicationStdErrPath;
73
+ - (void)setSimulatedApplicationStdErrPath:(id)fp8;
74
+ - (id)simulatedApplicationStdOutPath;
75
+ - (void)setSimulatedApplicationStdOutPath:(id)fp8;
76
+ - (id)simulatedApplicationLaunchEnvironment;
77
+ - (void)setSimulatedApplicationLaunchEnvironment:(id)fp8;
78
+ - (id)simulatedApplicationLaunchArgs;
79
+ - (void)setSimulatedApplicationLaunchArgs:(id)fp8;
80
+
81
+ - (DTiPhoneSimulatorApplicationSpecifier *) applicationToSimulateOnStart;
82
+ - (void) setApplicationToSimulateOnStart: (DTiPhoneSimulatorApplicationSpecifier *) appSpec;
83
+ - (DTiPhoneSimulatorSystemRoot *) simulatedSystemRoot;
84
+ - (void) setSimulatedSystemRoot: (DTiPhoneSimulatorSystemRoot *) simulatedSystemRoot;
85
+
86
+ - (NSNumber *) simulatedDeviceFamily;
87
+ - (void) setSimulatedDeviceFamily: (NSNumber *) family;
88
+
89
+ - (BOOL) simulatedApplicationShouldWaitForDebugger;
90
+ - (void) setSimulatedApplicationShouldWaitForDebugger: (BOOL) waitForDebugger;
91
+
92
+ - (id)localizedClientName;
93
+ - (void)setLocalizedClientName:(id)fp8;
94
+
95
+ @end
96
+
97
+
98
+ @interface DTiPhoneSimulatorSession : NSObject {
99
+ NSString *_uuid;
100
+ id <DTiPhoneSimulatorSessionDelegate> _delegate;
101
+ NSNumber *_simulatedApplicationPID;
102
+ int _sessionLifecycleProgress;
103
+ NSTimer *_timeoutTimer;
104
+ DTiPhoneSimulatorSessionConfig *_sessionConfig;
105
+ struct ProcessSerialNumber _simulatorPSN;
106
+ }
107
+
108
+ - (BOOL) requestStartWithConfig: (DTiPhoneSimulatorSessionConfig *) config timeout: (NSTimeInterval) timeout error: (NSError **) outError;
109
+ - (void) requestEndWithTimeout: (NSTimeInterval) timeout;
110
+
111
+ - (id)sessionConfig;
112
+ - (void)setSessionConfig:(id)fp8;
113
+ - (id)timeoutTimer;
114
+ - (void)setTimeoutTimer:(id)fp8;
115
+ - (int)sessionLifecycleProgress;
116
+ - (void)setSessionLifecycleProgress:(int)fp8;
117
+ - (id)simulatedApplicationPID;
118
+ - (void)setSimulatedApplicationPID:(id)fp8;
119
+
120
+ - (id<DTiPhoneSimulatorSessionDelegate>) delegate;
121
+ - (void) setDelegate: (id<DTiPhoneSimulatorSessionDelegate>) delegate;
122
+
123
+ - (id)uuid;
124
+ - (void)setUuid:(id)fp8;
125
+
126
+ @end
data/iCuke.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{iCuke}
8
- s.version = "0.6.5"
8
+ s.version = "0.6.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rob Holland"]
12
- s.date = %q{2011-08-17}
12
+ s.date = %q{2011-08-21}
13
13
  s.description = %q{Cucumber support for iPhone applications}
14
14
  s.email = %q{jason.felice@bluefroggaming.com}
15
15
  s.executables = ["icuke-module", "icuke", ".gitignore"]
@@ -59,6 +59,12 @@ Gem::Specification.new do |s|
59
59
  "bin/icuke-module",
60
60
  "ext/.gitignore",
61
61
  "ext/Rakefile",
62
+ "ext/WaxSim/Simulator.h",
63
+ "ext/WaxSim/Simulator.m",
64
+ "ext/WaxSim/WaxSim.m",
65
+ "ext/WaxSim/WaxSim.xcodeproj/project.pbxproj",
66
+ "ext/WaxSim/WaxSim_Prefix.pch",
67
+ "ext/WaxSim/iPhoneSimulatorRemoteClient/iPhoneSimulatorRemoteClient.h",
62
68
  "ext/iCuke/.gitignore",
63
69
  "ext/iCuke/DefaultsResponse.h",
64
70
  "ext/iCuke/DefaultsResponse.m",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iCuke
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 5
10
- version: 0.6.5
9
+ - 6
10
+ version: 0.6.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rob Holland
@@ -15,11 +15,14 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-17 00:00:00 -04:00
18
+ date: 2011-08-21 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ name: cucumber
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
26
  none: false
24
27
  requirements:
25
28
  - - ">="
@@ -28,12 +31,12 @@ dependencies:
28
31
  segments:
29
32
  - 0
30
33
  version: "0"
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: rake
31
37
  type: :runtime
32
- name: cucumber
33
38
  prerelease: false
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- requirement: &id002 !ruby/object:Gem::Requirement
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
37
40
  none: false
38
41
  requirements:
39
42
  - - ">="
@@ -42,12 +45,12 @@ dependencies:
42
45
  segments:
43
46
  - 0
44
47
  version: "0"
48
+ requirement: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: httparty
45
51
  type: :runtime
46
- name: rake
47
52
  prerelease: false
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- requirement: &id003 !ruby/object:Gem::Requirement
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
51
54
  none: false
52
55
  requirements:
53
56
  - - ">="
@@ -56,12 +59,12 @@ dependencies:
56
59
  segments:
57
60
  - 0
58
61
  version: "0"
62
+ requirement: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: nokogiri
59
65
  type: :runtime
60
- name: httparty
61
66
  prerelease: false
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- requirement: &id004 !ruby/object:Gem::Requirement
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
65
68
  none: false
66
69
  requirements:
67
70
  - - ">="
@@ -70,12 +73,12 @@ dependencies:
70
73
  segments:
71
74
  - 0
72
75
  version: "0"
76
+ requirement: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: background_process
73
79
  type: :runtime
74
- name: nokogiri
75
80
  prerelease: false
76
- version_requirements: *id004
77
- - !ruby/object:Gem::Dependency
78
- requirement: &id005 !ruby/object:Gem::Requirement
81
+ version_requirements: &id005 !ruby/object:Gem::Requirement
79
82
  none: false
80
83
  requirements:
81
84
  - - ">="
@@ -84,12 +87,12 @@ dependencies:
84
87
  segments:
85
88
  - 0
86
89
  version: "0"
87
- type: :runtime
88
- name: background_process
89
- prerelease: false
90
- version_requirements: *id005
90
+ requirement: *id005
91
91
  - !ruby/object:Gem::Dependency
92
- requirement: &id006 !ruby/object:Gem::Requirement
92
+ name: rspec
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: &id006 !ruby/object:Gem::Requirement
93
96
  none: false
94
97
  requirements:
95
98
  - - <
@@ -100,12 +103,12 @@ dependencies:
100
103
  - 0
101
104
  - 0
102
105
  version: 2.0.0
106
+ requirement: *id006
107
+ - !ruby/object:Gem::Dependency
108
+ name: jeweler
103
109
  type: :development
104
- name: rspec
105
110
  prerelease: false
106
- version_requirements: *id006
107
- - !ruby/object:Gem::Dependency
108
- requirement: &id007 !ruby/object:Gem::Requirement
111
+ version_requirements: &id007 !ruby/object:Gem::Requirement
109
112
  none: false
110
113
  requirements:
111
114
  - - ">="
@@ -114,12 +117,12 @@ dependencies:
114
117
  segments:
115
118
  - 0
116
119
  version: "0"
120
+ requirement: *id007
121
+ - !ruby/object:Gem::Dependency
122
+ name: sandbox
117
123
  type: :development
118
- name: jeweler
119
124
  prerelease: false
120
- version_requirements: *id007
121
- - !ruby/object:Gem::Dependency
122
- requirement: &id008 !ruby/object:Gem::Requirement
125
+ version_requirements: &id008 !ruby/object:Gem::Requirement
123
126
  none: false
124
127
  requirements:
125
128
  - - ">="
@@ -128,12 +131,12 @@ dependencies:
128
131
  segments:
129
132
  - 0
130
133
  version: "0"
131
- type: :development
132
- name: sandbox
133
- prerelease: false
134
- version_requirements: *id008
134
+ requirement: *id008
135
135
  - !ruby/object:Gem::Dependency
136
- requirement: &id009 !ruby/object:Gem::Requirement
136
+ name: cucumber
137
+ type: :runtime
138
+ prerelease: false
139
+ version_requirements: &id009 !ruby/object:Gem::Requirement
137
140
  none: false
138
141
  requirements:
139
142
  - - ">="
@@ -142,12 +145,12 @@ dependencies:
142
145
  segments:
143
146
  - 0
144
147
  version: "0"
148
+ requirement: *id009
149
+ - !ruby/object:Gem::Dependency
150
+ name: httparty
145
151
  type: :runtime
146
- name: cucumber
147
152
  prerelease: false
148
- version_requirements: *id009
149
- - !ruby/object:Gem::Dependency
150
- requirement: &id010 !ruby/object:Gem::Requirement
153
+ version_requirements: &id010 !ruby/object:Gem::Requirement
151
154
  none: false
152
155
  requirements:
153
156
  - - ">="
@@ -156,12 +159,12 @@ dependencies:
156
159
  segments:
157
160
  - 0
158
161
  version: "0"
162
+ requirement: *id010
163
+ - !ruby/object:Gem::Dependency
164
+ name: nokogiri
159
165
  type: :runtime
160
- name: httparty
161
166
  prerelease: false
162
- version_requirements: *id010
163
- - !ruby/object:Gem::Dependency
164
- requirement: &id011 !ruby/object:Gem::Requirement
167
+ version_requirements: &id011 !ruby/object:Gem::Requirement
165
168
  none: false
166
169
  requirements:
167
170
  - - ">="
@@ -170,12 +173,12 @@ dependencies:
170
173
  segments:
171
174
  - 0
172
175
  version: "0"
176
+ requirement: *id011
177
+ - !ruby/object:Gem::Dependency
178
+ name: rake
173
179
  type: :runtime
174
- name: nokogiri
175
180
  prerelease: false
176
- version_requirements: *id011
177
- - !ruby/object:Gem::Dependency
178
- requirement: &id012 !ruby/object:Gem::Requirement
181
+ version_requirements: &id012 !ruby/object:Gem::Requirement
179
182
  none: false
180
183
  requirements:
181
184
  - - ">="
@@ -184,12 +187,12 @@ dependencies:
184
187
  segments:
185
188
  - 0
186
189
  version: "0"
190
+ requirement: *id012
191
+ - !ruby/object:Gem::Dependency
192
+ name: background_process
187
193
  type: :runtime
188
- name: rake
189
194
  prerelease: false
190
- version_requirements: *id012
191
- - !ruby/object:Gem::Dependency
192
- requirement: &id013 !ruby/object:Gem::Requirement
195
+ version_requirements: &id013 !ruby/object:Gem::Requirement
193
196
  none: false
194
197
  requirements:
195
198
  - - ">="
@@ -198,10 +201,7 @@ dependencies:
198
201
  segments:
199
202
  - 0
200
203
  version: "0"
201
- type: :runtime
202
- name: background_process
203
- prerelease: false
204
- version_requirements: *id013
204
+ requirement: *id013
205
205
  description: Cucumber support for iPhone applications
206
206
  email: jason.felice@bluefroggaming.com
207
207
  executables:
@@ -254,6 +254,12 @@ files:
254
254
  - bin/icuke-module
255
255
  - ext/.gitignore
256
256
  - ext/Rakefile
257
+ - ext/WaxSim/Simulator.h
258
+ - ext/WaxSim/Simulator.m
259
+ - ext/WaxSim/WaxSim.m
260
+ - ext/WaxSim/WaxSim.xcodeproj/project.pbxproj
261
+ - ext/WaxSim/WaxSim_Prefix.pch
262
+ - ext/WaxSim/iPhoneSimulatorRemoteClient/iPhoneSimulatorRemoteClient.h
257
263
  - ext/iCuke/.gitignore
258
264
  - ext/iCuke/DefaultsResponse.h
259
265
  - ext/iCuke/DefaultsResponse.m