cocoaout 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/CHANGES.md +5 -0
  4. data/cocoaout.gemspec +1 -1
  5. data/lib/cocoaout/command.rb +4 -3
  6. data/spec/projects/COMacApp/COMacApp.xcodeproj/project.pbxproj +480 -0
  7. data/spec/projects/COMacApp/COMacApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  8. data/spec/projects/COMacApp/COMacApp.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  9. data/spec/projects/COMacApp/COMacApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/COMacApp.xcscheme +96 -0
  10. data/spec/projects/COMacApp/COMacApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  11. data/spec/projects/COMacApp/COMacApp/Base.lproj/MainMenu.xib +467 -0
  12. data/spec/projects/COMacApp/COMacApp/COMacApp-Info.plist +34 -0
  13. data/spec/projects/COMacApp/COMacApp/COMacApp-Prefix.pch +9 -0
  14. data/spec/projects/COMacApp/COMacApp/Images.xcassets/AppIcon.appiconset/Contents.json +58 -0
  15. data/spec/projects/COMacApp/COMacApp/MXAppDelegate.h +15 -0
  16. data/spec/projects/COMacApp/COMacApp/MXAppDelegate.m +18 -0
  17. data/spec/projects/COMacApp/COMacApp/en.lproj/Credits.rtf +29 -0
  18. data/spec/projects/COMacApp/COMacApp/en.lproj/InfoPlist.strings +2 -0
  19. data/spec/projects/COMacApp/COMacApp/main.m +14 -0
  20. data/spec/projects/COMacApp/COMacAppTests/COMacAppTests-Info.plist +22 -0
  21. data/spec/projects/COMacApp/COMacAppTests/COMacAppTests.m +34 -0
  22. data/spec/projects/COMacApp/COMacAppTests/en.lproj/InfoPlist.strings +2 -0
  23. data/spec/projects/COMacApp/Cocoaoutfile +15 -0
  24. data/spec/projects/COiOSApp/COiOSApp.xcodeproj/project.pbxproj +496 -0
  25. data/spec/projects/COiOSApp/COiOSApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  26. data/spec/projects/COiOSApp/COiOSApp.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  27. data/spec/projects/COiOSApp/COiOSApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/COiOSApp.xcscheme +96 -0
  28. data/spec/projects/COiOSApp/COiOSApp.xcodeproj/xcuserdata/jason.xcuserdatad/xcschemes/xcschememanagement.plist +27 -0
  29. data/spec/projects/COiOSApp/COiOSApp/Base.lproj/Main_iPad.storyboard +135 -0
  30. data/spec/projects/COiOSApp/COiOSApp/Base.lproj/Main_iPhone.storyboard +104 -0
  31. data/spec/projects/COiOSApp/COiOSApp/COiOSApp-Info.plist +59 -0
  32. data/spec/projects/COiOSApp/COiOSApp/COiOSApp-Prefix.pch +16 -0
  33. data/spec/projects/COiOSApp/COiOSApp/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  34. data/spec/projects/COiOSApp/COiOSApp/Images.xcassets/LaunchImage.launchimage/Contents.json +51 -0
  35. data/spec/projects/COiOSApp/COiOSApp/MXAppDelegate.h +15 -0
  36. data/spec/projects/COiOSApp/COiOSApp/MXAppDelegate.m +51 -0
  37. data/spec/projects/COiOSApp/COiOSApp/MXDetailViewController.h +16 -0
  38. data/spec/projects/COiOSApp/COiOSApp/MXDetailViewController.m +72 -0
  39. data/spec/projects/COiOSApp/COiOSApp/MXMasterViewController.h +17 -0
  40. data/spec/projects/COiOSApp/COiOSApp/MXMasterViewController.m +126 -0
  41. data/spec/projects/COiOSApp/COiOSApp/en.lproj/InfoPlist.strings +2 -0
  42. data/spec/projects/COiOSApp/COiOSApp/main.m +18 -0
  43. data/spec/projects/COiOSApp/COiOSAppTests/COiOSAppTests-Info.plist +22 -0
  44. data/spec/projects/COiOSApp/COiOSAppTests/COiOSAppTests.m +34 -0
  45. data/spec/projects/COiOSApp/COiOSAppTests/en.lproj/InfoPlist.strings +2 -0
  46. data/spec/projects/bg.png +0 -0
  47. metadata +84 -2
@@ -0,0 +1,53 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "idiom" : "iphone",
5
+ "size" : "29x29",
6
+ "scale" : "2x"
7
+ },
8
+ {
9
+ "idiom" : "iphone",
10
+ "size" : "40x40",
11
+ "scale" : "2x"
12
+ },
13
+ {
14
+ "idiom" : "iphone",
15
+ "size" : "60x60",
16
+ "scale" : "2x"
17
+ },
18
+ {
19
+ "idiom" : "ipad",
20
+ "size" : "29x29",
21
+ "scale" : "1x"
22
+ },
23
+ {
24
+ "idiom" : "ipad",
25
+ "size" : "29x29",
26
+ "scale" : "2x"
27
+ },
28
+ {
29
+ "idiom" : "ipad",
30
+ "size" : "40x40",
31
+ "scale" : "1x"
32
+ },
33
+ {
34
+ "idiom" : "ipad",
35
+ "size" : "40x40",
36
+ "scale" : "2x"
37
+ },
38
+ {
39
+ "idiom" : "ipad",
40
+ "size" : "76x76",
41
+ "scale" : "1x"
42
+ },
43
+ {
44
+ "idiom" : "ipad",
45
+ "size" : "76x76",
46
+ "scale" : "2x"
47
+ }
48
+ ],
49
+ "info" : {
50
+ "version" : 1,
51
+ "author" : "xcode"
52
+ }
53
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "orientation" : "portrait",
5
+ "idiom" : "iphone",
6
+ "extent" : "full-screen",
7
+ "minimum-system-version" : "7.0",
8
+ "scale" : "2x"
9
+ },
10
+ {
11
+ "orientation" : "portrait",
12
+ "idiom" : "iphone",
13
+ "subtype" : "retina4",
14
+ "extent" : "full-screen",
15
+ "minimum-system-version" : "7.0",
16
+ "scale" : "2x"
17
+ },
18
+ {
19
+ "orientation" : "portrait",
20
+ "idiom" : "ipad",
21
+ "extent" : "full-screen",
22
+ "minimum-system-version" : "7.0",
23
+ "scale" : "1x"
24
+ },
25
+ {
26
+ "orientation" : "landscape",
27
+ "idiom" : "ipad",
28
+ "extent" : "full-screen",
29
+ "minimum-system-version" : "7.0",
30
+ "scale" : "1x"
31
+ },
32
+ {
33
+ "orientation" : "portrait",
34
+ "idiom" : "ipad",
35
+ "extent" : "full-screen",
36
+ "minimum-system-version" : "7.0",
37
+ "scale" : "2x"
38
+ },
39
+ {
40
+ "orientation" : "landscape",
41
+ "idiom" : "ipad",
42
+ "extent" : "full-screen",
43
+ "minimum-system-version" : "7.0",
44
+ "scale" : "2x"
45
+ }
46
+ ],
47
+ "info" : {
48
+ "version" : 1,
49
+ "author" : "xcode"
50
+ }
51
+ }
@@ -0,0 +1,15 @@
1
+ //
2
+ // MXAppDelegate.h
3
+ // COiOSApp
4
+ //
5
+ // Created by Jason Lee on 13-10-17.
6
+ // Copyright (c) 2013年 taobao. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+
11
+ @interface MXAppDelegate : UIResponder <UIApplicationDelegate>
12
+
13
+ @property (strong, nonatomic) UIWindow *window;
14
+
15
+ @end
@@ -0,0 +1,51 @@
1
+ //
2
+ // MXAppDelegate.m
3
+ // COiOSApp
4
+ //
5
+ // Created by Jason Lee on 13-10-17.
6
+ // Copyright (c) 2013年 taobao. All rights reserved.
7
+ //
8
+
9
+ #import "MXAppDelegate.h"
10
+
11
+ @implementation MXAppDelegate
12
+
13
+ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
14
+ {
15
+ // Override point for customization after application launch.
16
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
17
+ UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
18
+ UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
19
+ splitViewController.delegate = (id)navigationController.topViewController;
20
+ }
21
+ return YES;
22
+ }
23
+
24
+ - (void)applicationWillResignActive:(UIApplication *)application
25
+ {
26
+ // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
27
+ // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
28
+ }
29
+
30
+ - (void)applicationDidEnterBackground:(UIApplication *)application
31
+ {
32
+ // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
33
+ // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
34
+ }
35
+
36
+ - (void)applicationWillEnterForeground:(UIApplication *)application
37
+ {
38
+ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
39
+ }
40
+
41
+ - (void)applicationDidBecomeActive:(UIApplication *)application
42
+ {
43
+ // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
44
+ }
45
+
46
+ - (void)applicationWillTerminate:(UIApplication *)application
47
+ {
48
+ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
49
+ }
50
+
51
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // MXDetailViewController.h
3
+ // COiOSApp
4
+ //
5
+ // Created by Jason Lee on 13-10-17.
6
+ // Copyright (c) 2013年 taobao. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+
11
+ @interface MXDetailViewController : UIViewController <UISplitViewControllerDelegate>
12
+
13
+ @property (strong, nonatomic) id detailItem;
14
+
15
+ @property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
16
+ @end
@@ -0,0 +1,72 @@
1
+ //
2
+ // MXDetailViewController.m
3
+ // COiOSApp
4
+ //
5
+ // Created by Jason Lee on 13-10-17.
6
+ // Copyright (c) 2013年 taobao. All rights reserved.
7
+ //
8
+
9
+ #import "MXDetailViewController.h"
10
+
11
+ @interface MXDetailViewController ()
12
+ @property (strong, nonatomic) UIPopoverController *masterPopoverController;
13
+ - (void)configureView;
14
+ @end
15
+
16
+ @implementation MXDetailViewController
17
+
18
+ #pragma mark - Managing the detail item
19
+
20
+ - (void)setDetailItem:(id)newDetailItem
21
+ {
22
+ if (_detailItem != newDetailItem) {
23
+ _detailItem = newDetailItem;
24
+
25
+ // Update the view.
26
+ [self configureView];
27
+ }
28
+
29
+ if (self.masterPopoverController != nil) {
30
+ [self.masterPopoverController dismissPopoverAnimated:YES];
31
+ }
32
+ }
33
+
34
+ - (void)configureView
35
+ {
36
+ // Update the user interface for the detail item.
37
+
38
+ if (self.detailItem) {
39
+ self.detailDescriptionLabel.text = [self.detailItem description];
40
+ }
41
+ }
42
+
43
+ - (void)viewDidLoad
44
+ {
45
+ [super viewDidLoad];
46
+ // Do any additional setup after loading the view, typically from a nib.
47
+ [self configureView];
48
+ }
49
+
50
+ - (void)didReceiveMemoryWarning
51
+ {
52
+ [super didReceiveMemoryWarning];
53
+ // Dispose of any resources that can be recreated.
54
+ }
55
+
56
+ #pragma mark - Split view
57
+
58
+ - (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
59
+ {
60
+ barButtonItem.title = NSLocalizedString(@"Master", @"Master");
61
+ [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
62
+ self.masterPopoverController = popoverController;
63
+ }
64
+
65
+ - (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
66
+ {
67
+ // Called when the view is shown again in the split view, invalidating the button and popover controller.
68
+ [self.navigationItem setLeftBarButtonItem:nil animated:YES];
69
+ self.masterPopoverController = nil;
70
+ }
71
+
72
+ @end
@@ -0,0 +1,17 @@
1
+ //
2
+ // MXMasterViewController.h
3
+ // COiOSApp
4
+ //
5
+ // Created by Jason Lee on 13-10-17.
6
+ // Copyright (c) 2013年 taobao. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+
11
+ @class MXDetailViewController;
12
+
13
+ @interface MXMasterViewController : UITableViewController
14
+
15
+ @property (strong, nonatomic) MXDetailViewController *detailViewController;
16
+
17
+ @end
@@ -0,0 +1,126 @@
1
+ //
2
+ // MXMasterViewController.m
3
+ // COiOSApp
4
+ //
5
+ // Created by Jason Lee on 13-10-17.
6
+ // Copyright (c) 2013年 taobao. All rights reserved.
7
+ //
8
+
9
+ #import "MXMasterViewController.h"
10
+
11
+ #import "MXDetailViewController.h"
12
+
13
+ @interface MXMasterViewController () {
14
+ NSMutableArray *_objects;
15
+ }
16
+ @end
17
+
18
+ @implementation MXMasterViewController
19
+
20
+ - (void)awakeFromNib
21
+ {
22
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
23
+ self.clearsSelectionOnViewWillAppear = NO;
24
+ self.preferredContentSize = CGSizeMake(320.0, 600.0);
25
+ }
26
+ [super awakeFromNib];
27
+ }
28
+
29
+ - (void)viewDidLoad
30
+ {
31
+ [super viewDidLoad];
32
+ // Do any additional setup after loading the view, typically from a nib.
33
+ self.navigationItem.leftBarButtonItem = self.editButtonItem;
34
+
35
+ UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
36
+ self.navigationItem.rightBarButtonItem = addButton;
37
+ self.detailViewController = (MXDetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
38
+ }
39
+
40
+ - (void)didReceiveMemoryWarning
41
+ {
42
+ [super didReceiveMemoryWarning];
43
+ // Dispose of any resources that can be recreated.
44
+ }
45
+
46
+ - (void)insertNewObject:(id)sender
47
+ {
48
+ if (!_objects) {
49
+ _objects = [[NSMutableArray alloc] init];
50
+ }
51
+ [_objects insertObject:[NSDate date] atIndex:0];
52
+ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
53
+ [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
54
+ }
55
+
56
+ #pragma mark - Table View
57
+
58
+ - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
59
+ {
60
+ return 1;
61
+ }
62
+
63
+ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
64
+ {
65
+ return _objects.count;
66
+ }
67
+
68
+ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
69
+ {
70
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
71
+
72
+ NSDate *object = _objects[indexPath.row];
73
+ cell.textLabel.text = [object description];
74
+ return cell;
75
+ }
76
+
77
+ - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
78
+ {
79
+ // Return NO if you do not want the specified item to be editable.
80
+ return YES;
81
+ }
82
+
83
+ - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
84
+ {
85
+ if (editingStyle == UITableViewCellEditingStyleDelete) {
86
+ [_objects removeObjectAtIndex:indexPath.row];
87
+ [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
88
+ } else if (editingStyle == UITableViewCellEditingStyleInsert) {
89
+ // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
90
+ }
91
+ }
92
+
93
+ /*
94
+ // Override to support rearranging the table view.
95
+ - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
96
+ {
97
+ }
98
+ */
99
+
100
+ /*
101
+ // Override to support conditional rearranging of the table view.
102
+ - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
103
+ {
104
+ // Return NO if you do not want the item to be re-orderable.
105
+ return YES;
106
+ }
107
+ */
108
+
109
+ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
110
+ {
111
+ if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
112
+ NSDate *object = _objects[indexPath.row];
113
+ self.detailViewController.detailItem = object;
114
+ }
115
+ }
116
+
117
+ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
118
+ {
119
+ if ([[segue identifier] isEqualToString:@"showDetail"]) {
120
+ NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
121
+ NSDate *object = _objects[indexPath.row];
122
+ [[segue destinationViewController] setDetailItem:object];
123
+ }
124
+ }
125
+
126
+ @end
@@ -0,0 +1,2 @@
1
+ /* Localized versions of Info.plist keys */
2
+
@@ -0,0 +1,18 @@
1
+ //
2
+ // main.m
3
+ // COiOSApp
4
+ //
5
+ // Created by Jason Lee on 13-10-17.
6
+ // Copyright (c) 2013年 taobao. All rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+
11
+ #import "MXAppDelegate.h"
12
+
13
+ int main(int argc, char * argv[])
14
+ {
15
+ @autoreleasepool {
16
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([MXAppDelegate class]));
17
+ }
18
+ }
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>en</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>${EXECUTABLE_NAME}</string>
9
+ <key>CFBundleIdentifier</key>
10
+ <string>com.taobao.${PRODUCT_NAME:rfc1034identifier}</string>
11
+ <key>CFBundleInfoDictionaryVersion</key>
12
+ <string>6.0</string>
13
+ <key>CFBundlePackageType</key>
14
+ <string>BNDL</string>
15
+ <key>CFBundleShortVersionString</key>
16
+ <string>1.0</string>
17
+ <key>CFBundleSignature</key>
18
+ <string>????</string>
19
+ <key>CFBundleVersion</key>
20
+ <string>1</string>
21
+ </dict>
22
+ </plist>