appjam 0.1.0.pre11 → 0.1.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 (49) hide show
  1. data/README.rdoc +22 -2
  2. data/lib/appjam/generators/cli.rb +7 -0
  3. data/lib/appjam/generators/model.rb +66 -10
  4. data/lib/appjam/generators/project.rb +57 -7
  5. data/lib/appjam/generators/project/Classes/ContactsAppDelegate.h.tt +5 -5
  6. data/lib/appjam/generators/project/Classes/ContactsAppDelegate.m.tt +14 -14
  7. data/lib/appjam/generators/project/Classes/contacts/ApplicationFacade.h.tt +11 -11
  8. data/lib/appjam/generators/project/Classes/contacts/ApplicationFacade.m.tt +8 -8
  9. data/lib/appjam/generators/project/Classes/contacts/controller/CreateUserCommand.h.tt +4 -4
  10. data/lib/appjam/generators/project/Classes/contacts/controller/CreateUserCommand.m.tt +13 -13
  11. data/lib/appjam/generators/project/Classes/contacts/controller/DeleteUserCommand.h.tt +4 -4
  12. data/lib/appjam/generators/project/Classes/contacts/controller/DeleteUserCommand.m.tt +10 -10
  13. data/lib/appjam/generators/project/Classes/contacts/controller/GetUsersCommand.h.tt +4 -5
  14. data/lib/appjam/generators/project/Classes/contacts/controller/GetUsersCommand.m.tt +8 -9
  15. data/lib/appjam/generators/project/Classes/contacts/controller/StartupCommand.h.tt +2 -2
  16. data/lib/appjam/generators/project/Classes/contacts/controller/StartupCommand.m.tt +12 -12
  17. data/lib/appjam/generators/project/Classes/contacts/controller/UpdateUserCommand.h.tt +4 -4
  18. data/lib/appjam/generators/project/Classes/contacts/controller/UpdateUserCommand.m.tt +13 -13
  19. data/lib/appjam/generators/project/Classes/contacts/model/UserProxy.h.tt +4 -4
  20. data/lib/appjam/generators/project/Classes/contacts/model/UserProxy.m.tt +15 -15
  21. data/lib/appjam/generators/project/Classes/contacts/model/vo/UserVO.h.tt +7 -7
  22. data/lib/appjam/generators/project/Classes/contacts/model/vo/UserVO.m.tt +18 -18
  23. data/lib/appjam/generators/project/Classes/contacts/view/UserFormMediator.h.tt +5 -5
  24. data/lib/appjam/generators/project/Classes/contacts/view/UserFormMediator.m.tt +18 -18
  25. data/lib/appjam/generators/project/Classes/contacts/view/UserListMediator.h.tt +5 -5
  26. data/lib/appjam/generators/project/Classes/contacts/view/UserListMediator.m.tt +19 -19
  27. data/lib/appjam/generators/project/Classes/contacts/view/UserMediator.h.tt +15 -0
  28. data/lib/appjam/generators/project/Classes/contacts/view/UserMediator.m.tt +43 -0
  29. data/lib/appjam/generators/project/Classes/contacts/view/components/Contacts.h.tt +12 -12
  30. data/lib/appjam/generators/project/Classes/contacts/view/components/Contacts.m.tt +14 -14
  31. data/lib/appjam/generators/project/Classes/contacts/view/components/UserForm.h.tt +14 -14
  32. data/lib/appjam/generators/project/Classes/contacts/view/components/UserForm.m.tt +29 -29
  33. data/lib/appjam/generators/project/Classes/contacts/view/components/UserList.h.tt +15 -15
  34. data/lib/appjam/generators/project/Classes/contacts/view/components/UserList.m.tt +29 -29
  35. data/lib/appjam/generators/project/Classes/org/puremvc/objectivec/patterns/command/SimpleCommand.m +1 -1
  36. data/lib/appjam/generators/project/Contacts_Prefix.pch.tt +1 -1
  37. data/lib/appjam/generators/project/main.m.tt +4 -4
  38. data/lib/appjam/generators/project/utils/NSStringWhiteSpace.h +2 -2
  39. data/lib/appjam/generators/project/utils/NSStringWhiteSpace.m +2 -2
  40. data/lib/appjam/generators/project/utils/UIDevice.h +2 -2
  41. data/lib/appjam/generators/project/utils/UIDevice.m +2 -2
  42. data/lib/appjam/generators/project/utils/URLEncodeString.h +2 -2
  43. data/lib/appjam/generators/project/utils/URLEncodeString.m +2 -2
  44. data/lib/appjam/version.rb +4 -4
  45. data/test/test_model_generator.rb +28 -0
  46. data/test/test_project_generator.rb +5 -5
  47. metadata +13 -15
  48. data/lib/appjam/generators/project/Classes/contacts/view/ContactsMediator.h.tt +0 -15
  49. data/lib/appjam/generators/project/Classes/contacts/view/ContactsMediator.m.tt +0 -43
@@ -1,18 +1,18 @@
1
1
  //
2
- // UserList.m
2
+ // <%= @class_name %>List.m
3
3
  // PureMVC_ObjectiveC
4
4
  //
5
- // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
- // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
- #import "UserList.h"
9
+ #import "<%= @class_name %>List.h"
10
10
 
11
- #define USER_CELL_ID @"UserCellID"
11
+ #define USER_CELL_ID @"<%= @class_name %>CellID"
12
12
 
13
- @implementation UserList
13
+ @implementation <%= @class_name %>List
14
14
 
15
- @synthesize users, delegate;
15
+ @synthesize <%= @project_name %>s, delegate;
16
16
 
17
17
  -(id)init {
18
18
  return [super initWithStyle:UITableViewStylePlain];
@@ -20,55 +20,55 @@
20
20
 
21
21
  - (void)loadView {
22
22
  [super loadView];
23
- self.users = [NSMutableArray array];
23
+ self.<%= @project_name %>s = [NSMutableArray array];
24
24
  //self.navigationItem.leftBarButtonItem = self.editButtonItem;
25
- self.navigationItem.title = @"Users";
26
- self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(newUser)];
25
+ self.navigationItem.title = @"<%= @class_name %>s";
26
+ self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(new<%= @class_name %>)];
27
27
  }
28
28
 
29
29
  -(void)viewDidAppear:(BOOL)animated {
30
30
  [super viewDidAppear:animated];
31
- [delegate userListAppeared];
31
+ [delegate <%= @project_name %>ListAppeared];
32
32
  }
33
33
 
34
- -(void)reloadUsers:(NSMutableArray *)_users {
35
- self.users = _users;
34
+ -(void)reload<%= @class_name %>s:(NSMutableArray *)_<%= @project_name %>s {
35
+ self.<%= @project_name %>s = _<%= @project_name %>s;
36
36
  [self.tableView reloadData];
37
37
  }
38
38
 
39
39
  - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
40
- UserVO *userVO = [[users objectAtIndex:indexPath.row] retain];
41
- [users removeObjectAtIndex:indexPath.row];
40
+ <%= @class_name %>VO *<%= @project_name %>VO = [[<%= @project_name %>s objectAtIndex:indexPath.row] retain];
41
+ [<%= @project_name %>s removeObjectAtIndex:indexPath.row];
42
42
  [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
43
- [delegate deleteUserSelected:userVO];
44
- [userVO release];
43
+ [delegate delete<%= @class_name %>Selected:<%= @project_name %>VO];
44
+ [<%= @project_name %>VO release];
45
45
  }
46
46
 
47
47
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
48
- UITableViewCell *userCell = [tableView dequeueReusableCellWithIdentifier:USER_CELL_ID];
49
- if (userCell == nil) {
50
- userCell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:USER_CELL_ID] autorelease];
51
- userCell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
48
+ UITableViewCell *<%= @project_name %>Cell = [tableView dequeueReusableCellWithIdentifier:USER_CELL_ID];
49
+ if (<%= @project_name %>Cell == nil) {
50
+ <%= @project_name %>Cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:USER_CELL_ID] autorelease];
51
+ <%= @project_name %>Cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
52
52
  }
53
- UserVO *userVO = [users objectAtIndex:indexPath.row];
54
- userCell.textLabel.text = [userVO givenName];
55
- return userCell;
53
+ <%= @class_name %>VO *<%= @project_name %>VO = [<%= @project_name %>s objectAtIndex:indexPath.row];
54
+ <%= @project_name %>Cell.textLabel.text = [<%= @project_name %>VO givenName];
55
+ return <%= @project_name %>Cell;
56
56
  }
57
57
 
58
58
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
59
- return [users count];
59
+ return [<%= @project_name %>s count];
60
60
  }
61
61
 
62
- -(void)newUser {
63
- [delegate newUserSelected];
62
+ -(void)new<%= @class_name %> {
63
+ [delegate new<%= @class_name %>Selected];
64
64
  }
65
65
 
66
66
  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
67
- [delegate userSelected:[users objectAtIndex:indexPath.row]];
67
+ [delegate <%= @project_name %>Selected:[<%= @project_name %>s objectAtIndex:indexPath.row]];
68
68
  }
69
69
 
70
70
  - (void)dealloc {
71
- self.users = nil;
71
+ self.<%= @project_name %>s = nil;
72
72
  self.delegate = nil;
73
73
  [super dealloc];
74
74
  }
@@ -23,7 +23,7 @@
23
23
  *
24
24
  * <P>
25
25
  * In the Command Pattern, an application use-case typically
26
- * begins with some user action, which results in an <code>INotification</code> being broadcast, which
26
+ * begins with some <%= @project_name %> action, which results in an <code>INotification</code> being broadcast, which
27
27
  * is handled by business logic in the <code>execute</code> method of an
28
28
  * <code>ICommand</code>.</P>
29
29
  *
@@ -1,5 +1,5 @@
1
1
  //
2
- // Prefix header for all source files of the 'Contacts' target in the '<%= @class_name %>' project
2
+ // Prefix header for all source files of the '<%= @class_name %>' target in the '<%= @project_name %>' project
3
3
  //
4
4
 
5
5
  #ifdef __OBJC__
@@ -1,9 +1,9 @@
1
1
  //
2
2
  // main.m
3
- // Contacts
3
+ // <%= @class_name %>
4
4
  //
5
- // Created by eiffel on 11-2-16.
6
- // Copyright 2011 Redsafi. All rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
9
  #import <UIKit/UIKit.h>
@@ -11,7 +11,7 @@
11
11
  int main(int argc, char *argv[]) {
12
12
 
13
13
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
14
- int retVal = UIApplicationMain(argc, argv, nil, @"ContactsAppDelegate");
14
+ int retVal = UIApplicationMain(argc, argv, nil, @"<%= @class_name %>AppDelegate");
15
15
  [pool release];
16
16
  return retVal;
17
17
  }
@@ -2,8 +2,8 @@
2
2
  // NSStringWhiteSpace.h
3
3
  // YueBao
4
4
  //
5
- // Created by eiffel on 10-4-8.
6
- // Copyright 2010 www.likenote.com. All rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
9
  #import <Foundation/Foundation.h>
@@ -2,8 +2,8 @@
2
2
  // NSStringWhiteSpace.m
3
3
  // YueBao
4
4
  //
5
- // Created by eiffel on 10-4-8.
6
- // Copyright 2010 www.likenote.com. All rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
9
  #import "NSStringWhiteSpace.h"
@@ -2,8 +2,8 @@
2
2
  // UIDevice.h
3
3
  // EarthShake
4
4
  //
5
- // Created by eiffel on 10-4-2.
6
- // Copyright 2010 www.likenote.com. All rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
9
  #import <Foundation/Foundation.h>
@@ -2,8 +2,8 @@
2
2
  // UIDevice.m
3
3
  // EarthShake
4
4
  //
5
- // Created by eiffel on 10-4-2.
6
- // Copyright 2010 www.likenote.com. All rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
9
  #import "UIDevice.h"
@@ -2,8 +2,8 @@
2
2
  // URLEncodeString.h
3
3
  // YueBao
4
4
  //
5
- // Created by eiffel on 10-4-27.
6
- // Copyright 2010 www.likenote.com. All rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
9
  #import <Foundation/Foundation.h>
@@ -2,8 +2,8 @@
2
2
  // URLEncodeString.m
3
3
  // YueBao
4
4
  //
5
- // Created by eiffel on 10-4-27.
6
- // Copyright 2010 www.likenote.com. All rights reserved.
5
+ // Created by <%= @developer.capitalize %> on <%= @created_on %>
6
+ // Copyright(c) <%= Time.now.year %>, All rights reserved.
7
7
  //
8
8
 
9
9
  #import "URLEncodeString.h"
@@ -2,9 +2,9 @@ module Appjam
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 0
6
- BUILD = 'pre11'
7
-
8
- STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
5
+ PATCH = 1
6
+ BUILD = ''
7
+
8
+ STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.').chomp('.')
9
9
  end
10
10
  end
@@ -0,0 +1,28 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+
3
+ class TestProjectGenerator < Test::Unit::TestCase
4
+ def setup
5
+ @apptmp = "#{Dir.tmpdir}/appjam-tests/#{UUID.new.generate}"
6
+ `mkdir -p #{@apptmp}`
7
+ end
8
+
9
+ def teardown
10
+ `rm -rf #{@apptmp}`
11
+ `rm -rf /tmp/project`
12
+ end
13
+
14
+ context 'the project generator' do
15
+
16
+ should "do not allow create model outside iphone project folder" do
17
+ assert_nothing_raised { silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}") } }
18
+ assert_raise(::NameError) { silence_logger { generate(:model, "user") } }
19
+ end
20
+
21
+ should "raise an Error when given invalid constant names for model" do
22
+ assert_raise(::NameError) { silence_logger { generate(:model, "123asdf") } }
23
+ assert_raise(::NameError) { silence_logger { generate(:model, "./sample_project") } }
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -22,13 +22,13 @@ class TestProjectGenerator < Test::Unit::TestCase
22
22
  assert_nothing_raised { silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}") } }
23
23
  assert_file_exists("#{@apptmp}/sample_project")
24
24
  assert_file_exists("#{@apptmp}/sample_project/Classes")
25
- assert_file_exists("#{@apptmp}/sample_project/Contacts_Prefix.pch")
26
- assert_file_exists("#{@apptmp}/sample_project/Contacts-Info.plist")
27
- assert_file_exists("#{@apptmp}/sample_project/Contacts.xcodeproj")
28
- assert_file_exists("#{@apptmp}/sample_project/main.m")
25
+ # assert_file_exists("#{@apptmp}/sample_project/Contacts_Prefix.pch")
26
+ # assert_file_exists("#{@apptmp}/sample_project/Contacts-Info.plist")
27
+ # assert_file_exists("#{@apptmp}/sample_project/Contacts.xcodeproj")
28
+ # assert_file_exists("#{@apptmp}/sample_project/main.m")
29
29
  end
30
30
 
31
- should "raise an Error when given invalid constant names" do
31
+ should "raise an Error when given invalid constant names for project" do
32
32
  assert_raise(::NameError) { silence_logger { generate(:project, "123asdf", "--root=#{@apptmp}") } }
33
33
  assert_raise(::NameError) { silence_logger { generate(:project, "./sample_project", "--root=#{@apptmp}") } }
34
34
  end
metadata CHANGED
@@ -1,15 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appjam
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1923831983
5
- prerelease: 6
4
+ hash: 25
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- - pre
11
- - 11
12
- version: 0.1.0.pre11
9
+ - 1
10
+ version: 0.1.1
13
11
  platform: ruby
14
12
  authors:
15
13
  - Eiffel Q
@@ -17,7 +15,7 @@ autorequire:
17
15
  bindir: bin
18
16
  cert_chain: []
19
17
 
20
- date: 2011-04-30 00:00:00 Z
18
+ date: 2011-05-01 00:00:00 Z
21
19
  dependencies:
22
20
  - !ruby/object:Gem::Dependency
23
21
  type: :runtime
@@ -328,12 +326,12 @@ files:
328
326
  - lib/appjam/generators/project/Classes/contacts/model/UserProxy.m.tt
329
327
  - lib/appjam/generators/project/Classes/contacts/model/vo/UserVO.h.tt
330
328
  - lib/appjam/generators/project/Classes/contacts/model/vo/UserVO.m.tt
331
- - lib/appjam/generators/project/Classes/contacts/view/ContactsMediator.h.tt
332
- - lib/appjam/generators/project/Classes/contacts/view/ContactsMediator.m.tt
333
329
  - lib/appjam/generators/project/Classes/contacts/view/UserFormMediator.h.tt
334
330
  - lib/appjam/generators/project/Classes/contacts/view/UserFormMediator.m.tt
335
331
  - lib/appjam/generators/project/Classes/contacts/view/UserListMediator.h.tt
336
332
  - lib/appjam/generators/project/Classes/contacts/view/UserListMediator.m.tt
333
+ - lib/appjam/generators/project/Classes/contacts/view/UserMediator.h.tt
334
+ - lib/appjam/generators/project/Classes/contacts/view/UserMediator.m.tt
337
335
  - lib/appjam/generators/project/Classes/contacts/view/components/Contacts.h.tt
338
336
  - lib/appjam/generators/project/Classes/contacts/view/components/Contacts.m.tt
339
337
  - lib/appjam/generators/project/Classes/contacts/view/components/UserForm.h.tt
@@ -388,6 +386,7 @@ files:
388
386
  - LICENSE.txt
389
387
  - README.rdoc
390
388
  - test/helper.rb
389
+ - test/test_model_generator.rb
391
390
  - test/test_project_generator.rb
392
391
  - bin/appjam
393
392
  homepage: http://github.com/eiffelqiu/appjam
@@ -410,14 +409,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
410
409
  required_rubygems_version: !ruby/object:Gem::Requirement
411
410
  none: false
412
411
  requirements:
413
- - - ">"
412
+ - - ">="
414
413
  - !ruby/object:Gem::Version
415
- hash: 25
414
+ hash: 3
416
415
  segments:
417
- - 1
418
- - 3
419
- - 1
420
- version: 1.3.1
416
+ - 0
417
+ version: "0"
421
418
  requirements: []
422
419
 
423
420
  rubyforge_project:
@@ -427,4 +424,5 @@ specification_version: 3
427
424
  summary: an iphone app generator
428
425
  test_files:
429
426
  - test/helper.rb
427
+ - test/test_model_generator.rb
430
428
  - test/test_project_generator.rb
@@ -1,15 +0,0 @@
1
- //
2
- // ContactsMediator.h
3
- // PureMVC_ObjectiveC
4
- //
5
- // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
- // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
- //
8
-
9
- #import "Mediator.h"
10
-
11
- @interface ContactsMediator : Mediator {
12
-
13
- }
14
-
15
- @end
@@ -1,43 +0,0 @@
1
- //
2
- // ContactsMediator.m
3
- // PureMVC_ObjectiveC
4
- //
5
- // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
- // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
- //
8
-
9
- #import "ContactsMediator.h"
10
- #import "Contacts.h"
11
- #import "ApplicationFacade.h"
12
-
13
- @implementation ContactsMediator
14
-
15
- +(NSString *)NAME {
16
- return @"ContactsMediator";
17
- }
18
-
19
- -(Contacts *)viewComponent {
20
- return viewComponent;
21
- }
22
-
23
- -(void)initializeMediator {
24
- self.mediatorName = [ContactsMediator NAME];
25
- }
26
-
27
- -(NSArray *)listNotificationInterests {
28
- return [NSArray arrayWithObjects:ShowUserForm, ShowUserList, ShowError, nil];
29
- }
30
-
31
- -(void)handleNotification:(id<INotification>)notification {
32
-
33
- if ([[notification name] isEqualToString:ShowUserForm]) {
34
- [self.viewComponent showUserForm];
35
- } else if ([[notification name] isEqualToString:ShowUserList]) {
36
- [self.viewComponent showUserList];
37
- } else if ([[notification name] isEqualToString:ShowError]) {
38
- [self.viewComponent showError:[notification body]];
39
- }
40
- }
41
-
42
-
43
- @end