appjam 0.1.4 → 0.1.5

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.
data/README.rdoc CHANGED
@@ -14,11 +14,11 @@ Appjam require ruby installed on your mac machine. Since now all Mac OSX system
14
14
 
15
15
  Appjam has an dependency on "thor" gem , which require latest rubygem installed, so you need to update your rubygem to latest version, run command below to update your rubygem to the latest one.
16
16
 
17
- $ gem update --system # double dash option
17
+ $ sudo gem update --system # double dash option
18
18
 
19
19
  == Installation
20
20
 
21
- $ gem install appjam
21
+ $ sudo gem install appjam
22
22
 
23
23
  == Usage
24
24
 
@@ -1,4 +1,8 @@
1
+ require 'rubygems'
2
+ require 'cli-colorize'
1
3
  require 'thor/group'
4
+ require 'hirb'
5
+ require File.dirname(__FILE__) + '/../view'
2
6
 
3
7
  module Appjam
4
8
  module Generators
@@ -7,7 +11,11 @@ module Appjam
7
11
  # 3rd party generators
8
12
  #
9
13
  class Cli < Thor::Group
10
-
14
+ include CLIColorize
15
+
16
+ CLIColorize.default_color = :red
17
+
18
+ RENDER_OPTIONS = { :fields => [:category,:command,:description] }
11
19
  # Include related modules
12
20
  include Thor::Actions
13
21
 
@@ -34,13 +42,12 @@ module Appjam
34
42
  args = ARGV.empty? && generator_class.require_arguments? ? ["-h"] : ARGV
35
43
  generator_class.start(args)
36
44
  else
45
+ puts colorize("Usage: appjam [OPTIONS] [ARGS]")
37
46
  puts
38
- puts '-'*70
39
- puts "Please specify generator to use (#{Appjam::Generators.mappings.keys.join(", ")})"
40
- puts '-'*70
41
- puts 'Usage1: appjam project todo # generate iphone project skeleton'
42
- puts 'Usage2: appjam model user # generate iphone project data model'
43
- puts '-'*70
47
+ puts colorize("APPJAM OPTIONS", { :foreground => :blue})
48
+ opt = [{ :category => "objective c (iphone)", :command => "appjam project todo", :description => "generate iphone project skeleton"},
49
+ { :category => "objective c (iphone)", :command => "appjam model user", :description => "generate iphone project data model"}]
50
+ View.render(opt, RENDER_OPTIONS)
44
51
  puts
45
52
  end
46
53
  end
@@ -1,29 +1,34 @@
1
1
  require 'thor'
2
+ require 'hirb'
2
3
  require 'thor/group'
3
4
  require 'thor/actions'
4
5
  require 'active_support/core_ext/string'
5
6
  require 'active_support/inflector'
6
- require File.dirname(__FILE__) + '/actions'
7
7
  require 'date'
8
+ require File.dirname(__FILE__) + '/actions'
9
+ require File.dirname(__FILE__) + '/../view'
8
10
 
9
11
  module Appjam
10
12
  module Generators
11
- class Jam < Thor::Group
12
-
13
- # Add this generator to our appjam
14
- Appjam::Generators.add_generator(:jam, self)
13
+ class Jam < Thor::Group
15
14
 
16
- # Define the source template root
17
- def self.source_root; File.expand_path(File.dirname(__FILE__)); end
18
- def self.banner; "appjam jam [name]"; end
15
+ def self.init_generator
16
+ # Define the source template root
17
+ def self.source_root; File.expand_path(File.dirname(__FILE__)); end
18
+ def self.banner; "appjam #{self.to_s.downcase.intern} [name]"; end
19
19
 
20
- # Include related modules
21
- include Thor::Actions
22
- include Appjam::Generators::Actions
20
+ # Include related modules
21
+ include Thor::Actions
22
+ include Appjam::Generators::Actions
23
+ end
24
+
25
+ def self.parseTemplate(data)
26
+ eval(data)
27
+ end
23
28
 
24
29
  desc "Description:\n\n\tthis should not be used, only acts as Parent Class"
25
30
 
26
- argument :name, :desc => "The name of your jam"
31
+ argument :name, :desc => "The name of your #{self.to_s.downcase.intern}"
27
32
 
28
33
  class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
29
34
  class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
@@ -33,16 +38,17 @@ module Appjam
33
38
  end
34
39
 
35
40
  def create_app
36
- valid_constant?(options[:project] || name)
37
- @jam_name = (options[:jam] || name).gsub(/\W/, "_").downcase
41
+ valid_constant?(options["#{self.to_s.downcase.intern}"] || name)
42
+ @jam_name = (options["#{self.to_s.downcase.intern}"] || name).gsub(/\W/, "_").downcase
38
43
  @developer = "#{`whoami`.strip}"
39
44
  @created_on = Date.today.to_s
40
45
  self.destination_root = options[:root]
41
- project = options[:jam]
46
+ project = options["#{self.to_s.downcase.intern}"]
42
47
  self.behavior = :revoke if options[:destroy]
43
48
 
44
- empty_directory "#{@jam_name}"
45
-
49
+ #empty_directory "#{@jam_name}"
50
+
51
+ View.render(options)
46
52
  say (<<-TEXT).gsub(/ {10}/,'')
47
53
 
48
54
  =================================================================
@@ -51,6 +57,23 @@ module Appjam
51
57
 
52
58
  TEXT
53
59
  end
60
+
61
+ class << self
62
+ # The methods below define the JAM DSL.
63
+ attr_reader :stable, :unstable
64
+
65
+ def self.attr_rw(*attrs)
66
+ attrs.each do |attr|
67
+ class_eval %Q{
68
+ def #{attr}(val=nil)
69
+ val.nil? ? @#{attr} : @#{attr} = val
70
+ end
71
+ }
72
+ end
73
+ end
74
+ attr_rw :version, :homepage, :author, :email, :data
75
+ end
76
+
54
77
  end # Jam
55
78
  end # Generators
56
79
  end # Appjam
@@ -1,26 +1,18 @@
1
- require 'thor'
2
- require 'thor/group'
3
- require 'thor/actions'
4
- require 'active_support/core_ext/string'
5
- require 'active_support/inflector'
6
- require File.dirname(__FILE__) + '/actions'
7
1
  require File.dirname(__FILE__) + '/jam'
8
- require 'date'
9
2
 
10
3
  module Appjam
11
4
  module Generators
12
5
  class Model < Jam
13
-
6
+
7
+ author 'Eiffel Qiu'
8
+ homepage 'http://www.likenote.com'
9
+ email 'eiffelqiu@gmail.com'
10
+ version Appjam::Version::STRING
11
+
14
12
  # Add this generator to our appjam
15
13
  Appjam::Generators.add_generator(:model, self)
16
-
17
- # Define the source template root
18
- def self.source_root; File.expand_path(File.dirname(__FILE__)); end
19
- def self.banner; "appjam model [name]"; end
20
-
21
- # Include related modules
22
- include Thor::Actions
23
- include Appjam::Generators::Actions
14
+
15
+ init_generator
24
16
 
25
17
  desc "Description:\n\n\tappjam will generates an new PureMvc Model for iphone"
26
18
 
@@ -28,10 +20,6 @@ module Appjam
28
20
 
29
21
  class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
30
22
  class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
31
-
32
- def in_app_root?
33
- File.exist?('Classes')
34
- end
35
23
 
36
24
  def create_app
37
25
  if in_app_root?
@@ -45,44 +33,8 @@ module Appjam
45
33
  self.destination_root = options[:root]
46
34
  project = options[:project]
47
35
  self.behavior = :revoke if options[:destroy]
48
-
49
- header = "
50
- #define ShowNew#{@class_name} @\"ShowNew#{@class_name}\"
51
- #define ShowEdit#{@class_name} @\"ShowEdit#{@class_name}\"
52
- #define Show#{@class_name}Form @\"Show#{@class_name}Form\"
53
- #define Show#{@class_name}List @\"Show#{@class_name}Lis\t\"
54
- #define Create#{@class_name} @\"Create#{@class_name}\"
55
- #define Update#{@class_name} @\"Update#{@class_name}\"
56
- #define Delete#{@class_name} @\"Delete#{@class_name}\"
57
- #define Get#{@class_name}s @\"Get#{@class_name}s\"
58
- #define Get#{@class_name}sSuccess @\"Get#{@class_name}sSuccess\"
59
- "
60
- inject_into_file destination_root("Classes/#{@xcode_project_name}/ApplicationFacade.h"), header, :after => "#import \"Facade.h\"\n"
61
- template "project/Classes/contacts/controller/CreateUserCommand.h.tt" , "Classes/#{@model_name}/controller/Create#{@class_name}Command.h"
62
- template "project/Classes/contacts/controller/CreateUserCommand.m.tt" , "Classes/#{@model_name}/controller/Create#{@class_name}Command.m"
63
- template "project/Classes/contacts/controller/DeleteUserCommand.h.tt" , "Classes/#{@model_name}/controller/Delete#{@class_name}Command.h"
64
- template "project/Classes/contacts/controller/DeleteUserCommand.m.tt" , "Classes/#{@model_name}/controller/Delete#{@class_name}Command.m"
65
- template "project/Classes/contacts/controller/GetUsersCommand.h.tt" , "Classes/#{@model_name}/controller/Get#{@class_name}sCommand.h"
66
- template "project/Classes/contacts/controller/GetUsersCommand.m.tt" , "Classes/#{@model_name}/controller/Get#{@class_name}sCommand.m"
67
- template "project/Classes/contacts/controller/UpdateUserCommand.h.tt" , "Classes/#{@model_name}/controller/Update#{@class_name}Command.h"
68
- template "project/Classes/contacts/controller/UpdateUserCommand.m.tt" , "Classes/#{@model_name}/controller/Update#{@class_name}Command.m"
69
- template "project/Classes/contacts/model/UserProxy.h.tt" , "Classes/#{@model_name}/model/#{@class_name}Proxy.h"
70
- template "project/Classes/contacts/model/UserProxy.m.tt" , "Classes/#{@model_name}/model/#{@class_name}Proxy.m"
71
- template "project/Classes/contacts/model/vo/UserVO.h.tt" , "Classes/#{@model_name}/model/vo/#{@class_name}VO.h"
72
- template "project/Classes/contacts/model/vo/UserVO.m.tt" , "Classes/#{@model_name}/model/vo/#{@class_name}VO.m"
73
- template "project/Classes/contacts/view/UserMediator.h.tt" , "Classes/#{@model_name}/view/#{@class_name}Mediator.h"
74
- template "project/Classes/contacts/view/UserMediator.m.tt" , "Classes/#{@model_name}/view/#{@class_name}Mediator.m"
75
- template "project/Classes/contacts/view/UserFormMediator.h.tt" , "Classes/#{@model_name}/view/#{@class_name}FormMediator.h"
76
- template "project/Classes/contacts/view/UserFormMediator.m.tt" , "Classes/#{@model_name}/view/#{@class_name}FormMediator.m"
77
- template "project/Classes/contacts/view/UserListMediator.h.tt" , "Classes/#{@model_name}/view/#{@class_name}ListMediator.h"
78
- template "project/Classes/contacts/view/UserListMediator.m.tt" , "Classes/#{@model_name}/view/#{@class_name}ListMediator.m"
79
- template "project/Classes/contacts/view/components/Contacts.h.tt" , "Classes/#{@model_name}/view/components/#{@class_name}.h"
80
- template "project/Classes/contacts/view/components/Contacts.m.tt" , "Classes/#{@model_name}/view/components/#{@class_name}.m"
81
- template "project/Classes/contacts/view/components/UserForm.h.tt" , "Classes/#{@model_name}/view/components/#{@class_name}Form.h"
82
- template "project/Classes/contacts/view/components/UserForm.m.tt" , "Classes/#{@model_name}/view/components/#{@class_name}Form.m"
83
- template "project/Classes/contacts/view/components/UserList.h.tt" , "Classes/#{@model_name}/view/components/#{@class_name}List.h"
84
- template "project/Classes/contacts/view/components/UserList.m.tt" , "Classes/#{@model_name}/view/components/#{@class_name}List.m"
85
-
36
+
37
+ eval(File.read(__FILE__) =~ /^__END__\n/ && $' || '')
86
38
 
87
39
  say (<<-TEXT).gsub(/ {10}/,'')
88
40
 
@@ -104,4 +56,42 @@ module Appjam
104
56
  end
105
57
  end # Model
106
58
  end # Generators
107
- end # Appjam
59
+ end # Appjam
60
+
61
+ __END__
62
+ header = "
63
+ #define ShowNew#{@class_name} @\"ShowNew#{@class_name}\"
64
+ #define ShowEdit#{@class_name} @\"ShowEdit#{@class_name}\"
65
+ #define Show#{@class_name}Form @\"Show#{@class_name}Form\"
66
+ #define Show#{@class_name}List @\"Show#{@class_name}Lis\t\"
67
+ #define Create#{@class_name} @\"Create#{@class_name}\"
68
+ #define Update#{@class_name} @\"Update#{@class_name}\"
69
+ #define Delete#{@class_name} @\"Delete#{@class_name}\"
70
+ #define Get#{@class_name}s @\"Get#{@class_name}s\"
71
+ #define Get#{@class_name}sSuccess @\"Get#{@class_name}sSuccess\"
72
+ "
73
+ inject_into_file destination_root("Classes/#{@xcode_project_name}/ApplicationFacade.h"), header, :after => "#import \"Facade.h\"\n"
74
+ template "project/Classes/contacts/controller/CreateUserCommand.h.tt" , "Classes/#{@model_name}/controller/Create#{@class_name}Command.h"
75
+ template "project/Classes/contacts/controller/CreateUserCommand.m.tt" , "Classes/#{@model_name}/controller/Create#{@class_name}Command.m"
76
+ template "project/Classes/contacts/controller/DeleteUserCommand.h.tt" , "Classes/#{@model_name}/controller/Delete#{@class_name}Command.h"
77
+ template "project/Classes/contacts/controller/DeleteUserCommand.m.tt" , "Classes/#{@model_name}/controller/Delete#{@class_name}Command.m"
78
+ template "project/Classes/contacts/controller/GetUsersCommand.h.tt" , "Classes/#{@model_name}/controller/Get#{@class_name}sCommand.h"
79
+ template "project/Classes/contacts/controller/GetUsersCommand.m.tt" , "Classes/#{@model_name}/controller/Get#{@class_name}sCommand.m"
80
+ template "project/Classes/contacts/controller/UpdateUserCommand.h.tt" , "Classes/#{@model_name}/controller/Update#{@class_name}Command.h"
81
+ template "project/Classes/contacts/controller/UpdateUserCommand.m.tt" , "Classes/#{@model_name}/controller/Update#{@class_name}Command.m"
82
+ template "project/Classes/contacts/model/UserProxy.h.tt" , "Classes/#{@model_name}/model/#{@class_name}Proxy.h"
83
+ template "project/Classes/contacts/model/UserProxy.m.tt" , "Classes/#{@model_name}/model/#{@class_name}Proxy.m"
84
+ template "project/Classes/contacts/model/vo/UserVO.h.tt" , "Classes/#{@model_name}/model/vo/#{@class_name}VO.h"
85
+ template "project/Classes/contacts/model/vo/UserVO.m.tt" , "Classes/#{@model_name}/model/vo/#{@class_name}VO.m"
86
+ template "project/Classes/contacts/view/UserMediator.h.tt" , "Classes/#{@model_name}/view/#{@class_name}Mediator.h"
87
+ template "project/Classes/contacts/view/UserMediator.m.tt" , "Classes/#{@model_name}/view/#{@class_name}Mediator.m"
88
+ template "project/Classes/contacts/view/UserFormMediator.h.tt" , "Classes/#{@model_name}/view/#{@class_name}FormMediator.h"
89
+ template "project/Classes/contacts/view/UserFormMediator.m.tt" , "Classes/#{@model_name}/view/#{@class_name}FormMediator.m"
90
+ template "project/Classes/contacts/view/UserListMediator.h.tt" , "Classes/#{@model_name}/view/#{@class_name}ListMediator.h"
91
+ template "project/Classes/contacts/view/UserListMediator.m.tt" , "Classes/#{@model_name}/view/#{@class_name}ListMediator.m"
92
+ template "project/Classes/contacts/view/components/Contacts.h.tt" , "Classes/#{@model_name}/view/components/#{@class_name}.h"
93
+ template "project/Classes/contacts/view/components/Contacts.m.tt" , "Classes/#{@model_name}/view/components/#{@class_name}.m"
94
+ template "project/Classes/contacts/view/components/UserForm.h.tt" , "Classes/#{@model_name}/view/components/#{@class_name}Form.h"
95
+ template "project/Classes/contacts/view/components/UserForm.m.tt" , "Classes/#{@model_name}/view/components/#{@class_name}Form.m"
96
+ template "project/Classes/contacts/view/components/UserList.h.tt" , "Classes/#{@model_name}/view/components/#{@class_name}List.h"
97
+ template "project/Classes/contacts/view/components/UserList.m.tt" , "Classes/#{@model_name}/view/components/#{@class_name}List.m"
@@ -1,26 +1,18 @@
1
- require 'thor'
2
- require 'thor/group'
3
- require 'thor/actions'
4
- require 'active_support/core_ext/string'
5
- require 'active_support/inflector'
6
- require File.dirname(__FILE__) + '/actions'
7
1
  require File.dirname(__FILE__) + '/jam'
8
- require 'date'
9
2
 
10
3
  module Appjam
11
4
  module Generators
12
5
  class Project < Jam
6
+
7
+ author 'Eiffel Qiu'
8
+ homepage 'http://www.likenote.com'
9
+ email 'eiffelqiu@gmail.com'
10
+ version Appjam::Version::STRING
13
11
 
14
12
  # Add this generator to our appjam
15
13
  Appjam::Generators.add_generator(:project, self)
16
-
17
- # Define the source template root
18
- def self.source_root; File.expand_path(File.dirname(__FILE__)); end
19
- def self.banner; "appjam project [name]"; end
20
-
21
- # Include related modules
22
- include Thor::Actions
23
- include Appjam::Generators::Actions
14
+
15
+ init_generator
24
16
 
25
17
  desc "Description:\n\n\tappjam will generates an new PureMvc application for iphone"
26
18
 
@@ -29,10 +21,6 @@ module Appjam
29
21
  class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
30
22
  class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
31
23
 
32
- def in_app_root?
33
- File.exist?('Classes')
34
- end
35
-
36
24
  def create_app
37
25
  valid_constant?(options[:project] || name)
38
26
  @project_name = (options[:app] || name).gsub(/\W/, "_").downcase
@@ -42,71 +30,9 @@ module Appjam
42
30
  self.destination_root = options[:root]
43
31
  project = options[:project]
44
32
  self.behavior = :revoke if options[:destroy]
45
-
46
- empty_directory "#{@project_name}"
47
- template "project/Contacts_Prefix.pch.tt", "#{@project_name}/#{@class_name}_Prefix.pch"
48
- template "project/Contacts-Info.plist.tt", "#{@project_name}/#{@class_name}-Info.plist"
49
- directory "project/Contacts.xcodeproj", "#{@project_name}/#{@class_name}.xcodeproj"
50
- fileName = "#{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/project.pbxproj"
51
- aFile = File.open(fileName, "r")
52
- aString = aFile.read
53
- aFile.close
54
-
55
- aString.gsub!('contacts', "#{@project_name}")
56
- aString.gsub!('User', "#{@class_name}")
57
- aString.gsub!('Contacts', "#{@class_name}")
58
- aString.gsub!('Contact', "#{@class_name}")
59
- File.open(fileName, "w") { |file| file << aString }
60
-
61
- system "mv #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/eiffel.pbxuser #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/#{`whoami`.strip}.pbxuser"
62
- system "mv #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/eiffel.perspectivev3 #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/#{`whoami`.strip}.perspectivev3"
63
-
64
- template "project/main.m.tt", "#{@project_name}/main.m"
65
-
66
- empty_directory "#{@project_name}/Classes/utils"
67
-
68
- copy_file "project/utils/NSStringWhiteSpace.h", "#{@project_name}/Classes/utils/NSStringWhiteSpace.h"
69
- copy_file "project/utils/NSStringWhiteSpace.m", "#{@project_name}/Classes/utils/NSStringWhiteSpace.m"
70
- copy_file "project/utils/UIDevice.h", "#{@project_name}/Classes/utils/UIDevice.h"
71
- copy_file "project/utils/UIDevice.m", "#{@project_name}/Classes/utils/UIDevice.m"
72
- copy_file "project/utils/URLEncodeString.h", "#{@project_name}/Classes/utils/URLEncodeString.h"
73
- copy_file "project/utils/URLEncodeString.m", "#{@project_name}/Classes/utils/URLEncodeString.m"
74
-
75
- directory "project/Classes/org", "#{@project_name}/Classes/org"
76
-
77
- template "project/Classes/ContactsAppDelegate.h.tt" , "#{@project_name}/Classes/#{@class_name}AppDelegate.h"
78
- template "project/Classes/ContactsAppDelegate.m.tt" , "#{@project_name}/Classes/#{@class_name}AppDelegate.m"
79
- template "project/Classes/contacts/ApplicationFacade.h.tt" , "#{@project_name}/Classes/#{@project_name}/ApplicationFacade.h"
80
- template "project/Classes/contacts/ApplicationFacade.m.tt" , "#{@project_name}/Classes/#{@project_name}/ApplicationFacade.m"
81
- template "project/Classes/contacts/controller/CreateUserCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Create#{@class_name}Command.h"
82
- template "project/Classes/contacts/controller/CreateUserCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Create#{@class_name}Command.m"
83
- template "project/Classes/contacts/controller/DeleteUserCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Delete#{@class_name}Command.h"
84
- template "project/Classes/contacts/controller/DeleteUserCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Delete#{@class_name}Command.m"
85
- template "project/Classes/contacts/controller/GetUsersCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Get#{@class_name}sCommand.h"
86
- template "project/Classes/contacts/controller/GetUsersCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Get#{@class_name}sCommand.m"
87
- template "project/Classes/contacts/controller/StartupCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/StartupCommand.h"
88
- template "project/Classes/contacts/controller/StartupCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/StartupCommand.m"
89
- template "project/Classes/contacts/controller/UpdateUserCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Update#{@class_name}Command.h"
90
- template "project/Classes/contacts/controller/UpdateUserCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Update#{@class_name}Command.m"
91
- template "project/Classes/contacts/model/UserProxy.h.tt" , "#{@project_name}/Classes/#{@project_name}/model/#{@class_name}Proxy.h"
92
- template "project/Classes/contacts/model/UserProxy.m.tt" , "#{@project_name}/Classes/#{@project_name}/model/#{@class_name}Proxy.m"
93
- template "project/Classes/contacts/model/vo/UserVO.h.tt" , "#{@project_name}/Classes/#{@project_name}/model/vo/#{@class_name}VO.h"
94
- template "project/Classes/contacts/model/vo/UserVO.m.tt" , "#{@project_name}/Classes/#{@project_name}/model/vo/#{@class_name}VO.m"
95
- template "project/Classes/contacts/view/UserMediator.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}Mediator.h"
96
- template "project/Classes/contacts/view/UserMediator.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}Mediator.m"
97
- template "project/Classes/contacts/view/UserFormMediator.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}FormMediator.h"
98
- template "project/Classes/contacts/view/UserFormMediator.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}FormMediator.m"
99
- template "project/Classes/contacts/view/UserListMediator.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}ListMediator.h"
100
- template "project/Classes/contacts/view/UserListMediator.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}ListMediator.m"
101
- template "project/Classes/contacts/view/components/Contacts.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}.h"
102
- template "project/Classes/contacts/view/components/Contacts.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}.m"
103
- template "project/Classes/contacts/view/components/UserForm.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}Form.h"
104
- template "project/Classes/contacts/view/components/UserForm.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}Form.m"
105
- template "project/Classes/contacts/view/components/UserList.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}List.h"
106
- template "project/Classes/contacts/view/components/UserList.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}List.m"
107
33
 
34
+ eval(File.read(__FILE__) =~ /^__END__\n/ && $' || '')
108
35
 
109
-
110
36
  say (<<-TEXT).gsub(/ {10}/,'')
111
37
 
112
38
  =================================================================
@@ -119,4 +45,69 @@ module Appjam
119
45
  end
120
46
  end # Project
121
47
  end # Generators
122
- end # Appjam
48
+ end # Appjam
49
+
50
+ __END__
51
+ empty_directory "#{@project_name}"
52
+ template "project/Contacts_Prefix.pch.tt", "#{@project_name}/#{@class_name}_Prefix.pch"
53
+ template "project/Contacts-Info.plist.tt", "#{@project_name}/#{@class_name}-Info.plist"
54
+ directory "project/Contacts.xcodeproj", "#{@project_name}/#{@class_name}.xcodeproj"
55
+ fileName = "#{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/project.pbxproj"
56
+ aFile = File.open(fileName, "r")
57
+ aString = aFile.read
58
+ aFile.close
59
+
60
+ aString.gsub!('contacts', "#{@project_name}")
61
+ aString.gsub!('User', "#{@class_name}")
62
+ aString.gsub!('Contacts', "#{@class_name}")
63
+ aString.gsub!('Contact', "#{@class_name}")
64
+ File.open(fileName, "w") { |file| file << aString }
65
+
66
+ system "mv #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/eiffel.pbxuser #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/#{`whoami`.strip}.pbxuser"
67
+ system "mv #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/eiffel.perspectivev3 #{options[:root]}/#{@project_name}/#{@class_name}.xcodeproj/#{`whoami`.strip}.perspectivev3"
68
+
69
+ template "project/main.m.tt", "#{@project_name}/main.m"
70
+
71
+ empty_directory "#{@project_name}/Classes/utils"
72
+
73
+ copy_file "project/utils/NSStringWhiteSpace.h", "#{@project_name}/Classes/utils/NSStringWhiteSpace.h"
74
+ copy_file "project/utils/NSStringWhiteSpace.m", "#{@project_name}/Classes/utils/NSStringWhiteSpace.m"
75
+ copy_file "project/utils/UIDevice.h", "#{@project_name}/Classes/utils/UIDevice.h"
76
+ copy_file "project/utils/UIDevice.m", "#{@project_name}/Classes/utils/UIDevice.m"
77
+ copy_file "project/utils/URLEncodeString.h", "#{@project_name}/Classes/utils/URLEncodeString.h"
78
+ copy_file "project/utils/URLEncodeString.m", "#{@project_name}/Classes/utils/URLEncodeString.m"
79
+
80
+ directory "project/Classes/org", "#{@project_name}/Classes/org"
81
+
82
+ template "project/Classes/ContactsAppDelegate.h.tt" , "#{@project_name}/Classes/#{@class_name}AppDelegate.h"
83
+ template "project/Classes/ContactsAppDelegate.m.tt" , "#{@project_name}/Classes/#{@class_name}AppDelegate.m"
84
+ template "project/Classes/contacts/ApplicationFacade.h.tt" , "#{@project_name}/Classes/#{@project_name}/ApplicationFacade.h"
85
+ template "project/Classes/contacts/ApplicationFacade.m.tt" , "#{@project_name}/Classes/#{@project_name}/ApplicationFacade.m"
86
+ template "project/Classes/contacts/controller/CreateUserCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Create#{@class_name}Command.h"
87
+ template "project/Classes/contacts/controller/CreateUserCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Create#{@class_name}Command.m"
88
+ template "project/Classes/contacts/controller/DeleteUserCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Delete#{@class_name}Command.h"
89
+ template "project/Classes/contacts/controller/DeleteUserCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Delete#{@class_name}Command.m"
90
+ template "project/Classes/contacts/controller/GetUsersCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Get#{@class_name}sCommand.h"
91
+ template "project/Classes/contacts/controller/GetUsersCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Get#{@class_name}sCommand.m"
92
+ template "project/Classes/contacts/controller/StartupCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/StartupCommand.h"
93
+ template "project/Classes/contacts/controller/StartupCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/StartupCommand.m"
94
+ template "project/Classes/contacts/controller/UpdateUserCommand.h.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Update#{@class_name}Command.h"
95
+ template "project/Classes/contacts/controller/UpdateUserCommand.m.tt" , "#{@project_name}/Classes/#{@project_name}/controller/Update#{@class_name}Command.m"
96
+ template "project/Classes/contacts/model/UserProxy.h.tt" , "#{@project_name}/Classes/#{@project_name}/model/#{@class_name}Proxy.h"
97
+ template "project/Classes/contacts/model/UserProxy.m.tt" , "#{@project_name}/Classes/#{@project_name}/model/#{@class_name}Proxy.m"
98
+ template "project/Classes/contacts/model/vo/UserVO.h.tt" , "#{@project_name}/Classes/#{@project_name}/model/vo/#{@class_name}VO.h"
99
+ template "project/Classes/contacts/model/vo/UserVO.m.tt" , "#{@project_name}/Classes/#{@project_name}/model/vo/#{@class_name}VO.m"
100
+ template "project/Classes/contacts/view/UserMediator.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}Mediator.h"
101
+ template "project/Classes/contacts/view/UserMediator.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}Mediator.m"
102
+ template "project/Classes/contacts/view/UserFormMediator.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}FormMediator.h"
103
+ template "project/Classes/contacts/view/UserFormMediator.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}FormMediator.m"
104
+ template "project/Classes/contacts/view/UserListMediator.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}ListMediator.h"
105
+ template "project/Classes/contacts/view/UserListMediator.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/#{@class_name}ListMediator.m"
106
+ template "project/Classes/contacts/view/components/Contacts.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}.h"
107
+ template "project/Classes/contacts/view/components/Contacts.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}.m"
108
+ template "project/Classes/contacts/view/components/UserForm.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}Form.h"
109
+ template "project/Classes/contacts/view/components/UserForm.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}Form.m"
110
+ template "project/Classes/contacts/view/components/UserList.h.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}List.h"
111
+ template "project/Classes/contacts/view/components/UserList.m.tt" , "#{@project_name}/Classes/#{@project_name}/view/components/#{@class_name}List.m"
112
+
113
+
@@ -6,3 +6,11 @@
6
6
  #import <Foundation/Foundation.h>
7
7
  #import <UIKit/UIKit.h>
8
8
  #endif
9
+
10
+ #define ALog(format, ...) NSLog((@"%s [L%d] " format), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
11
+
12
+ #ifdef DEBUG
13
+ #define DLog(format, ...) ALog(format, ##__VA_ARGS__);
14
+ #else
15
+ #define DLog(...)
16
+ #endif
@@ -1,15 +1,9 @@
1
- TEMPLATE = (<<-TEMPLATE)
2
- require 'thor'
3
- require 'thor/group'
4
- require 'thor/actions'
5
- require 'active_support/core_ext/string'
6
- require 'active_support/inflector'
7
- require File.dirname(__FILE__) + '/actions'
8
- require 'date'
1
+ TEMPLATE = <<-BLOCK
2
+ require File.dirname(__FILE__) + '/jam'
9
3
 
10
4
  module Appjam
11
5
  module Generators
12
- class Template < Thor::Group
6
+ class Template < Jam
13
7
 
14
8
  # Add this generator to our appjam
15
9
  Appjam::Generators.add_generator(:template, self)
@@ -28,14 +22,14 @@ module Appjam
28
22
 
29
23
  class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
30
24
  class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
31
-
25
+
32
26
  def in_app_root?
33
27
  File.exist?('Classes')
34
28
  end
35
29
 
36
30
  def create_app
37
31
  if in_app_root?
38
-
32
+
39
33
  say (<<-TEXT).gsub(/ {10}/,'')
40
34
 
41
35
  =================================================================
@@ -48,7 +42,7 @@ TEXT
48
42
  end # Template
49
43
  end # Generators
50
44
  end # Appjam
51
- TEMPLATE
45
+ BLOCK
52
46
 
53
47
  namespace :appjam do
54
48
  namespace :plugin do
@@ -62,6 +56,9 @@ namespace :appjam do
62
56
  Dir.mkdir plugin_dir unless File.exist?(plugin_dir)
63
57
  File.open(plugin_name, 'w') {|f| f.write(TEMPLATE) }
64
58
  end
59
+
60
+
65
61
 
66
62
  end # plugin
67
63
  end # appjam
64
+
@@ -2,7 +2,7 @@ module Appjam
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- PATCH = 4
5
+ PATCH = 5
6
6
  BUILD = ''
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.').chomp('.')
@@ -0,0 +1,48 @@
1
+ module Appjam
2
+ module View
3
+ extend self
4
+
5
+ # Enables hirb and reads a config file from the main repo's config/hirb.yml.
6
+ def enable
7
+ unless @enabled
8
+ Hirb::View.enable(:config_file=>File.join(Appjam.repo.config_dir, 'hirb.yml'))
9
+ Hirb::Helpers::Table.filter_any = true
10
+ end
11
+ @enabled = true
12
+ end
13
+
14
+ # Renders any object via Hirb. Options are passed directly to
15
+ # {Hirb::Console.render_output}[http://tagaholic.me/hirb/doc/classes/Hirb/Console.html#M000011].
16
+ def render(object, options={}, return_obj=false)
17
+ if options[:inspect]
18
+ puts(object.inspect)
19
+ else
20
+ render_object(object, options, return_obj) unless silent_object?(object)
21
+ end
22
+ end
23
+
24
+ #:stopdoc:
25
+ def class_config(klass)
26
+ opts = (Hirb::View.formatter_config[klass] || {}).dup
27
+ opts.delete(:ancestor)
28
+ opts.merge!((opts.delete(:options) || {}).dup)
29
+ OptionParser.make_mergeable!(opts)
30
+ opts
31
+ end
32
+
33
+ def toggle_pager
34
+ Hirb::View.toggle_pager
35
+ end
36
+
37
+ def silent_object?(obj)
38
+ [nil,false,true].include?(obj)
39
+ end
40
+
41
+ def render_object(object, options={}, return_obj=false)
42
+ options[:class] ||= :auto_table
43
+ render_result = Hirb::Console.render_output(object, options)
44
+ return_obj ? object : render_result
45
+ end
46
+ #:startdoc:
47
+ end
48
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appjam
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 4
10
- version: 0.1.4
9
+ - 5
10
+ version: 0.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Eiffel Q
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-04 00:00:00 Z
18
+ date: 2011-05-06 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  type: :runtime
@@ -46,8 +46,36 @@ dependencies:
46
46
  name: activesupport
47
47
  prerelease: false
48
48
  - !ruby/object:Gem::Dependency
49
- type: :development
49
+ type: :runtime
50
50
  requirement: &id003 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ version_requirements: *id003
60
+ name: cli-colorize
61
+ prerelease: false
62
+ - !ruby/object:Gem::Dependency
63
+ type: :runtime
64
+ requirement: &id004 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ hash: 3
70
+ segments:
71
+ - 0
72
+ version: "0"
73
+ version_requirements: *id004
74
+ name: hirb
75
+ prerelease: false
76
+ - !ruby/object:Gem::Dependency
77
+ type: :development
78
+ requirement: &id005 !ruby/object:Gem::Requirement
51
79
  none: false
52
80
  requirements:
53
81
  - - ">="
@@ -58,12 +86,12 @@ dependencies:
58
86
  - 8
59
87
  - 7
60
88
  version: 0.8.7
61
- version_requirements: *id003
89
+ version_requirements: *id005
62
90
  name: rake
63
91
  prerelease: false
64
92
  - !ruby/object:Gem::Dependency
65
93
  type: :development
66
- requirement: &id004 !ruby/object:Gem::Requirement
94
+ requirement: &id006 !ruby/object:Gem::Requirement
67
95
  none: false
68
96
  requirements:
69
97
  - - ">="
@@ -74,12 +102,12 @@ dependencies:
74
102
  - 9
75
103
  - 8
76
104
  version: 0.9.8
77
- version_requirements: *id004
105
+ version_requirements: *id006
78
106
  name: mocha
79
107
  prerelease: false
80
108
  - !ruby/object:Gem::Dependency
81
109
  type: :development
82
- requirement: &id005 !ruby/object:Gem::Requirement
110
+ requirement: &id007 !ruby/object:Gem::Requirement
83
111
  none: false
84
112
  requirements:
85
113
  - - ">="
@@ -90,12 +118,12 @@ dependencies:
90
118
  - 5
91
119
  - 0
92
120
  version: 0.5.0
93
- version_requirements: *id005
121
+ version_requirements: *id007
94
122
  name: rack-test
95
123
  prerelease: false
96
124
  - !ruby/object:Gem::Dependency
97
125
  type: :development
98
- requirement: &id006 !ruby/object:Gem::Requirement
126
+ requirement: &id008 !ruby/object:Gem::Requirement
99
127
  none: false
100
128
  requirements:
101
129
  - - ">="
@@ -106,12 +134,12 @@ dependencies:
106
134
  - 2
107
135
  - 8
108
136
  version: 1.2.8
109
- version_requirements: *id006
137
+ version_requirements: *id008
110
138
  name: fakeweb
111
139
  prerelease: false
112
140
  - !ruby/object:Gem::Dependency
113
141
  type: :development
114
- requirement: &id007 !ruby/object:Gem::Requirement
142
+ requirement: &id009 !ruby/object:Gem::Requirement
115
143
  none: false
116
144
  requirements:
117
145
  - - "="
@@ -122,12 +150,12 @@ dependencies:
122
150
  - 5
123
151
  - 1
124
152
  version: 0.5.1
125
- version_requirements: *id007
153
+ version_requirements: *id009
126
154
  name: webrat
127
155
  prerelease: false
128
156
  - !ruby/object:Gem::Dependency
129
157
  type: :development
130
- requirement: &id008 !ruby/object:Gem::Requirement
158
+ requirement: &id010 !ruby/object:Gem::Requirement
131
159
  none: false
132
160
  requirements:
133
161
  - - ">="
@@ -138,12 +166,12 @@ dependencies:
138
166
  - 10
139
167
  - 3
140
168
  version: 2.10.3
141
- version_requirements: *id008
169
+ version_requirements: *id010
142
170
  name: shoulda
143
171
  prerelease: false
144
172
  - !ruby/object:Gem::Dependency
145
173
  type: :development
146
- requirement: &id009 !ruby/object:Gem::Requirement
174
+ requirement: &id011 !ruby/object:Gem::Requirement
147
175
  none: false
148
176
  requirements:
149
177
  - - ">="
@@ -154,12 +182,12 @@ dependencies:
154
182
  - 3
155
183
  - 1
156
184
  version: 2.3.1
157
- version_requirements: *id009
185
+ version_requirements: *id011
158
186
  name: uuid
159
187
  prerelease: false
160
188
  - !ruby/object:Gem::Dependency
161
189
  type: :development
162
- requirement: &id010 !ruby/object:Gem::Requirement
190
+ requirement: &id012 !ruby/object:Gem::Requirement
163
191
  none: false
164
192
  requirements:
165
193
  - - ">="
@@ -170,12 +198,12 @@ dependencies:
170
198
  - 1
171
199
  - 2
172
200
  version: 2.1.2
173
- version_requirements: *id010
201
+ version_requirements: *id012
174
202
  name: builder
175
203
  prerelease: false
176
204
  - !ruby/object:Gem::Dependency
177
205
  type: :development
178
- requirement: &id011 !ruby/object:Gem::Requirement
206
+ requirement: &id013 !ruby/object:Gem::Requirement
179
207
  none: false
180
208
  requirements:
181
209
  - - ~>
@@ -186,12 +214,12 @@ dependencies:
186
214
  - 5
187
215
  - 2
188
216
  version: 1.5.2
189
- version_requirements: *id011
217
+ version_requirements: *id013
190
218
  name: jeweler
191
219
  prerelease: false
192
220
  - !ruby/object:Gem::Dependency
193
221
  type: :development
194
- requirement: &id012 !ruby/object:Gem::Requirement
222
+ requirement: &id014 !ruby/object:Gem::Requirement
195
223
  none: false
196
224
  requirements:
197
225
  - - ~>
@@ -202,12 +230,12 @@ dependencies:
202
230
  - 9
203
231
  - 8
204
232
  version: 0.9.8
205
- version_requirements: *id012
233
+ version_requirements: *id014
206
234
  name: rcov
207
235
  prerelease: false
208
236
  - !ruby/object:Gem::Dependency
209
237
  type: :development
210
- requirement: &id013 !ruby/object:Gem::Requirement
238
+ requirement: &id015 !ruby/object:Gem::Requirement
211
239
  none: false
212
240
  requirements:
213
241
  - - ">="
@@ -216,12 +244,12 @@ dependencies:
216
244
  segments:
217
245
  - 0
218
246
  version: "0"
219
- version_requirements: *id013
247
+ version_requirements: *id015
220
248
  name: grit
221
249
  prerelease: false
222
250
  - !ruby/object:Gem::Dependency
223
251
  type: :development
224
- requirement: &id014 !ruby/object:Gem::Requirement
252
+ requirement: &id016 !ruby/object:Gem::Requirement
225
253
  none: false
226
254
  requirements:
227
255
  - - ">="
@@ -230,12 +258,12 @@ dependencies:
230
258
  segments:
231
259
  - 0
232
260
  version: "0"
233
- version_requirements: *id014
261
+ version_requirements: *id016
234
262
  name: i18n
235
263
  prerelease: false
236
264
  - !ruby/object:Gem::Dependency
237
265
  type: :development
238
- requirement: &id015 !ruby/object:Gem::Requirement
266
+ requirement: &id017 !ruby/object:Gem::Requirement
239
267
  none: false
240
268
  requirements:
241
269
  - - ">="
@@ -246,12 +274,12 @@ dependencies:
246
274
  - 9
247
275
  - 1
248
276
  version: 0.9.1
249
- version_requirements: *id015
277
+ version_requirements: *id017
250
278
  name: ruby-prof
251
279
  prerelease: false
252
280
  - !ruby/object:Gem::Dependency
253
281
  type: :development
254
- requirement: &id016 !ruby/object:Gem::Requirement
282
+ requirement: &id018 !ruby/object:Gem::Requirement
255
283
  none: false
256
284
  requirements:
257
285
  - - ">="
@@ -261,12 +289,12 @@ dependencies:
261
289
  - 1
262
290
  - 0
263
291
  version: "1.0"
264
- version_requirements: *id016
292
+ version_requirements: *id018
265
293
  name: system_timer
266
294
  prerelease: false
267
295
  - !ruby/object:Gem::Dependency
268
296
  type: :runtime
269
- requirement: &id017 !ruby/object:Gem::Requirement
297
+ requirement: &id019 !ruby/object:Gem::Requirement
270
298
  none: false
271
299
  requirements:
272
300
  - - ">="
@@ -275,12 +303,12 @@ dependencies:
275
303
  segments:
276
304
  - 0
277
305
  version: "0"
278
- version_requirements: *id017
306
+ version_requirements: *id019
279
307
  name: activesupport
280
308
  prerelease: false
281
309
  - !ruby/object:Gem::Dependency
282
310
  type: :runtime
283
- requirement: &id018 !ruby/object:Gem::Requirement
311
+ requirement: &id020 !ruby/object:Gem::Requirement
284
312
  none: false
285
313
  requirements:
286
314
  - - ">="
@@ -289,12 +317,12 @@ dependencies:
289
317
  segments:
290
318
  - 0
291
319
  version: "0"
292
- version_requirements: *id018
320
+ version_requirements: *id020
293
321
  name: grit
294
322
  prerelease: false
295
323
  - !ruby/object:Gem::Dependency
296
324
  type: :runtime
297
- requirement: &id019 !ruby/object:Gem::Requirement
325
+ requirement: &id021 !ruby/object:Gem::Requirement
298
326
  none: false
299
327
  requirements:
300
328
  - - ">="
@@ -303,9 +331,37 @@ dependencies:
303
331
  segments:
304
332
  - 0
305
333
  version: "0"
306
- version_requirements: *id019
334
+ version_requirements: *id021
307
335
  name: i18n
308
336
  prerelease: false
337
+ - !ruby/object:Gem::Dependency
338
+ type: :runtime
339
+ requirement: &id022 !ruby/object:Gem::Requirement
340
+ none: false
341
+ requirements:
342
+ - - ">="
343
+ - !ruby/object:Gem::Version
344
+ hash: 3
345
+ segments:
346
+ - 0
347
+ version: "0"
348
+ version_requirements: *id022
349
+ name: hirb
350
+ prerelease: false
351
+ - !ruby/object:Gem::Dependency
352
+ type: :runtime
353
+ requirement: &id023 !ruby/object:Gem::Requirement
354
+ none: false
355
+ requirements:
356
+ - - ">="
357
+ - !ruby/object:Gem::Version
358
+ hash: 3
359
+ segments:
360
+ - 0
361
+ version: "0"
362
+ version_requirements: *id023
363
+ name: cli-colorize
364
+ prerelease: false
309
365
  description: generate iphone app skeleton based on pure mvc framework
310
366
  email: eiffelqiu@gmail.com
311
367
  executables:
@@ -400,6 +456,7 @@ files:
400
456
  - lib/appjam/tasks.rb
401
457
  - lib/appjam/tasks/plugin.rb
402
458
  - lib/appjam/version.rb
459
+ - lib/appjam/view.rb
403
460
  - LICENSE.txt
404
461
  - README.rdoc
405
462
  - test/helper.rb