rucola 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. data/ChangeLog +628 -0
  2. data/History.txt +4 -0
  3. data/License.txt +20 -0
  4. data/Manifest.txt +106 -0
  5. data/README.txt +126 -0
  6. data/Rakefile +32 -0
  7. data/TODO +28 -0
  8. data/app_generators/rucola/USAGE +6 -0
  9. data/app_generators/rucola/rucola_generator.rb +112 -0
  10. data/app_generators/rucola/templates/Rakefile.erb +12 -0
  11. data/app_generators/rucola/templates/Rakefile.erb.old +156 -0
  12. data/app_generators/rucola/templates/app/controllers/application_controller.rb +22 -0
  13. data/app_generators/rucola/templates/config/Info.plist.erb +28 -0
  14. data/app_generators/rucola/templates/config/boot.rb +2 -0
  15. data/app_generators/rucola/templates/config/environment.rb +11 -0
  16. data/app_generators/rucola/templates/config/environments/debug.rb +3 -0
  17. data/app_generators/rucola/templates/config/environments/release.rb +3 -0
  18. data/app_generators/rucola/templates/config/environments/test.rb +3 -0
  19. data/app_generators/rucola/templates/config/ib_external_class_defs.yml +13 -0
  20. data/app_generators/rucola/templates/misc/English.lproj/InfoPlist.strings.erb +3 -0
  21. data/app_generators/rucola/templates/misc/English.lproj/MainMenu.nib/classes.nib +40 -0
  22. data/app_generators/rucola/templates/misc/English.lproj/MainMenu.nib/info.nib +18 -0
  23. data/app_generators/rucola/templates/misc/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
  24. data/app_generators/rucola/templates/misc/main.m.erb +15 -0
  25. data/app_generators/rucola/templates/misc/rb_main.rb.erb +13 -0
  26. data/app_generators/rucola/templates/project.pbxproj.erb +299 -0
  27. data/app_generators/rucola/templates/script/plugin +84 -0
  28. data/app_generators/rucola/templates/test/controllers/test_application_controller.rb +10 -0
  29. data/app_generators/rucola/templates/test/test_helper.rb +10 -0
  30. data/bin/rucola +12 -0
  31. data/config/hoe.rb +71 -0
  32. data/config/requirements.rb +17 -0
  33. data/lib/rucola.rb +3 -0
  34. data/lib/rucola/info_plist.rb +37 -0
  35. data/lib/rucola/initializer.rb +313 -0
  36. data/lib/rucola/nib.rb +99 -0
  37. data/lib/rucola/rucola_support.rb +9 -0
  38. data/lib/rucola/rucola_support/controllers.rb +2 -0
  39. data/lib/rucola/rucola_support/controllers/rc_controller.rb +7 -0
  40. data/lib/rucola/rucola_support/controllers/rc_window_controller.rb +12 -0
  41. data/lib/rucola/rucola_support/core_ext.rb +2 -0
  42. data/lib/rucola/rucola_support/core_ext/objc.rb +4 -0
  43. data/lib/rucola/rucola_support/core_ext/objc/nsobject.rb +22 -0
  44. data/lib/rucola/rucola_support/core_ext/ruby.rb +4 -0
  45. data/lib/rucola/rucola_support/core_ext/ruby/string.rb +21 -0
  46. data/lib/rucola/rucola_support/initialize_hooks.rb +21 -0
  47. data/lib/rucola/rucola_support/models.rb +1 -0
  48. data/lib/rucola/rucola_support/models/rc_document.rb +10 -0
  49. data/lib/rucola/rucola_support/notifications.rb +1 -0
  50. data/lib/rucola/rucola_support/notifications/notifications.rb +146 -0
  51. data/lib/rucola/rucola_support/rc_app.rb +101 -0
  52. data/lib/rucola/tasks/freeze.rake +44 -0
  53. data/lib/rucola/tasks/interface_builder.rake +80 -0
  54. data/lib/rucola/tasks/main.rake +29 -0
  55. data/lib/rucola/tasks/xcode.rake +43 -0
  56. data/lib/rucola/test_helper.rb +57 -0
  57. data/lib/rucola/version.rb +9 -0
  58. data/lib/rucola/xcode.rb +148 -0
  59. data/log/debug.log +0 -0
  60. data/rucola_generators/controller/USAGE +5 -0
  61. data/rucola_generators/controller/controller_generator.rb +84 -0
  62. data/rucola_generators/controller/templates/controller_template.rb.erb +5 -0
  63. data/rucola_generators/controller/templates/test_controller_template.rb.erb +10 -0
  64. data/rucola_generators/document_model/USAGE +5 -0
  65. data/rucola_generators/document_model/document_model_generator.rb +67 -0
  66. data/rucola_generators/document_model/templates/document_model_template.rb.erb +27 -0
  67. data/rucola_generators/document_model/templates/test_document_model_template.rb.erb +10 -0
  68. data/rucola_generators/window_controller/USAGE +6 -0
  69. data/rucola_generators/window_controller/templates/Window.nib/classes.nib.erb +35 -0
  70. data/rucola_generators/window_controller/templates/Window.nib/info.nib +16 -0
  71. data/rucola_generators/window_controller/templates/Window.nib/keyedobjects.nib +0 -0
  72. data/rucola_generators/window_controller/templates/test_window_controller_template.rb.erb +10 -0
  73. data/rucola_generators/window_controller/templates/window_controller_template.rb.erb +19 -0
  74. data/rucola_generators/window_controller/window_controller_generator.rb +74 -0
  75. data/script/destroy +14 -0
  76. data/script/generate +14 -0
  77. data/script/txt2html +74 -0
  78. data/setup.rb +1585 -0
  79. data/tasks/deployment.rake +27 -0
  80. data/tasks/environment.rake +7 -0
  81. data/tasks/website.rake +17 -0
  82. data/test/fixtures/Info.plist +28 -0
  83. data/test/fixtures/MainMenu.nib/classes.nib +32 -0
  84. data/test/fixtures/MainMenu.nib/info.nib +18 -0
  85. data/test/fixtures/MainMenu.nib/keyedobjects.nib +0 -0
  86. data/test/test_controller_generator.rb +75 -0
  87. data/test/test_core_ext.rb +15 -0
  88. data/test/test_document_model_generator.rb +64 -0
  89. data/test/test_generator_helper.rb +20 -0
  90. data/test/test_helper.rb +13 -0
  91. data/test/test_info_plist.rb +31 -0
  92. data/test/test_nib.rb +73 -0
  93. data/test/test_notifications.rb +75 -0
  94. data/test/test_objc_core_ext.rb +37 -0
  95. data/test/test_rc_app.rb +63 -0
  96. data/test/test_rc_document.rb +18 -0
  97. data/test/test_rc_window_controller.rb +13 -0
  98. data/test/test_rucola.rb +11 -0
  99. data/test/test_rucola_generator.rb +87 -0
  100. data/test/test_window_controller_generator.rb +50 -0
  101. data/test/test_xcode.rb +128 -0
  102. data/website/index.html +199 -0
  103. data/website/index.txt +126 -0
  104. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  105. data/website/stylesheets/screen.css +138 -0
  106. data/website/template.rhtml +48 -0
  107. metadata +189 -0
@@ -0,0 +1,156 @@
1
+ # -*- mode:ruby; indent-tabs-mode:nil; coding:utf-8 -*-
2
+ # vim:ts=2:sw=2:expandtab:
3
+ require 'rubygems'
4
+ require 'rake'
5
+ require 'rake/clean'
6
+ require 'rake/testtask'
7
+ require 'pathname'
8
+
9
+ # Application own Settings
10
+ APPNAME = "<%= name %>"
11
+ TARGET = "#{APPNAME}.app"
12
+ #APPVERSION = "rev#{`svn info`[/Revision: (\d+)/, 1]}"
13
+ APPVERSION = Time.now.strftime("%Y-%m-%d")
14
+ PUBLISH = 'yourname@yourhost:path'
15
+ DEFAULT_TARGET = APPNAME
16
+ DEFAULT_CONFIGURATION = 'Release'
17
+ RELEASE_CONFIGURATION = 'Release'
18
+
19
+ # Tasks
20
+ task :default => [:run]
21
+
22
+ desc "Build the default and run it."
23
+ task :run => [:build] do
24
+ sh %{open "build/Release/#{APPNAME}.app"}
25
+ end
26
+
27
+ desc 'Build the default target using the default configuration'
28
+ task :build => "xcode:build:#{DEFAULT_TARGET}:#{DEFAULT_CONFIGURATION}"
29
+
30
+ desc 'Deep clean of everything'
31
+ task :clean do
32
+ puts %x{ xcodebuild -alltargets clean }
33
+ end
34
+
35
+ desc "Add files to Xcode project"
36
+ task :add do |t|
37
+ files = ARGV[1..-1]
38
+ project = %x{ xcodebuild -list }[/Information about project "([^"]+)":/, 1]
39
+ files << "#{project}.xcodeproj"
40
+ exec("rubycocoa", "add", *files)
41
+ end
42
+
43
+ desc "Create ruby skelton and add to Xcode project"
44
+ task :create do |t|
45
+ args = ARGV[1..-1]
46
+ if system("rubycocoa", "create", *args)
47
+ project = %x{ xcodebuild -list }[/Information about project "([^"]+)":/, 1]
48
+ exec("rubycocoa", "add", args.last + ".rb", "#{project}.xcodeproj")
49
+ end
50
+ end
51
+
52
+ desc "Update nib with ruby file"
53
+ task :update do |t|
54
+ args = ARGV[1..-1]
55
+ args.unshift("English.lproj/MainMenu.nib")
56
+ exec("rubycocoa", "update", *args)
57
+ end
58
+
59
+ desc "Package the application"
60
+ task :package => ["xcode:build:#{DEFAULT_TARGET}:#{RELEASE_CONFIGURATION}", "pkg"] do
61
+ name = "#{APPNAME}.#{APPVERSION}"
62
+ mkdir "image"
63
+ sh %{rubycocoa standaloneify "build/#{DEFAULT_CONFIGURATION}/#{APPNAME}.app" "image/#{APPNAME}.app"}
64
+ puts 'Creating Image...'
65
+ sh %{
66
+ hdiutil create -volname '#{name}' -srcfolder image '#{name}'.dmg
67
+ rm -rf image
68
+ mv '#{name}.dmg' pkg
69
+ }
70
+ end
71
+
72
+ directory 'pkg'
73
+
74
+ desc 'Make Localized nib from English.lproj and Lang.lproj/nib.strings'
75
+ rule(/.nib$/ => [proc {|tn| File.dirname(tn) + '/nib.strings' }]) do |t|
76
+ p t.name
77
+ lproj = File.dirname(t.name)
78
+ target = File.basename(t.name)
79
+ rm_rf t.name
80
+ sh %{
81
+ nibtool -d #{lproj}/nib.strings -w #{t.name} English.lproj/#{target}
82
+ }
83
+ end
84
+
85
+ # [Rubycocoa-devel 906] dynamically xcode rake tasks
86
+ # [Rubycocoa-devel 907]
87
+ #
88
+ def xcode_targets
89
+ out = %x{ xcodebuild -list }
90
+ out.scan(/.*Targets:\s+(.*)Build Configurations:.*/m)
91
+
92
+ targets = []
93
+ $1.each_line do |l|
94
+ l = l.strip.sub(' (Active)', '')
95
+ targets << l unless l.nil? or l.empty?
96
+ end
97
+ targets
98
+ end
99
+
100
+ def xcode_configurations
101
+ out = %x{ xcodebuild -list }
102
+ out.scan(/.*Build Configurations:\s+(.*)If no build configuration.*/m)
103
+
104
+ configurations = []
105
+ $1.each_line do |l|
106
+ l = l.strip.sub(' (Active)', '')
107
+ configurations << l unless l.nil? or l.empty?
108
+ end
109
+ configurations
110
+ end
111
+
112
+ namespace :xcode do
113
+ targets = xcode_targets
114
+ configs = xcode_configurations
115
+
116
+ %w{build clean}.each do |action|
117
+ namespace "#{action}" do
118
+
119
+ targets.each do |target|
120
+ desc "#{action} #{target}"
121
+ task "#{target}" do |t|
122
+ puts %x{ xcodebuild -target '#{target}' #{action} }
123
+ end
124
+
125
+ # alias the task above using a massaged name
126
+ massaged_target = target.downcase.gsub(/[\s*|\-]/, '_')
127
+ task "#{massaged_target}" => "xcode:#{action}:#{target}"
128
+
129
+
130
+ namespace "#{target}" do
131
+ configs.each do |config|
132
+ desc "#{action} #{target} #{config}"
133
+ task "#{config}" do |t|
134
+ puts %x{ xcodebuild -target '#{target}' -configuration '#{config}' #{action} }
135
+ end
136
+ end
137
+ end
138
+
139
+ # namespace+task aliases of the above using massaged names
140
+ namespace "#{massaged_target}" do
141
+ configs.each { |conf| task "#{conf.downcase.gsub(/[\s*|\-]/, '_')}" => "xcode:#{action}:#{target}:#{conf}" }
142
+ end
143
+
144
+ end
145
+
146
+ end
147
+ end
148
+ end
149
+
150
+
151
+ if ["update", "add", "create"].include? ARGV[0]
152
+ # dupe rake
153
+ ARGV.map! {|a| a.sub(/^\+/, "-") }
154
+ Rake.application[ARGV[0].to_sym].invoke
155
+ exit # will not reach
156
+ end
@@ -0,0 +1,22 @@
1
+ class ApplicationController < Rucola::RCController
2
+ ib_outlet :main_window
3
+
4
+ def awakeFromNib
5
+ # All the application delegate methods will be called on this object.
6
+ OSX::NSApp.delegate = self
7
+
8
+ puts "ApplicationController awoke."
9
+ puts "Edit: app/controllers/application_controller.rb"
10
+ puts "\nIt's window is: #{@main_window.inspect}"
11
+ end
12
+
13
+ # NSApplication delegate methods
14
+ def applicationDidFinishLaunching(notification)
15
+ puts "\nApplication finished launching."
16
+ end
17
+
18
+ def applicationWillTerminate(notification)
19
+ puts "\nApplication will terminate."
20
+ end
21
+
22
+ end
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//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>English</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string><%= name %></string>
9
+ <key>CFBundleIconFile</key>
10
+ <string></string>
11
+ <key>CFBundleInfoDictionaryVersion</key>
12
+ <string>6.0</string>
13
+ <key>CFBundlePackageType</key>
14
+ <string>APPL</string>
15
+ <key>CFBundleSignature</key>
16
+ <string>????</string>
17
+ <key>CFBundleVersion</key>
18
+ <string>1.0</string>
19
+ <key>NSMainNibFile</key>
20
+ <string>MainMenu</string>
21
+ <key>NSPrincipalClass</key>
22
+ <string>NSApplication</string>
23
+ <key>CFBundleIdentifier</key>
24
+ <string>com.apple.rubycocoa.<%= name %>App</string>
25
+ <key>CFBundleShortVersionString</key>
26
+ <string>1.0</string>
27
+ </dict>
28
+ </plist>
@@ -0,0 +1,2 @@
1
+ require File.dirname(__FILE__) + '/environment.rb'
2
+ Rucola::Initializer.run(:set_load_path)
@@ -0,0 +1,11 @@
1
+ Rucola::Initializer.run do |config|
2
+ # Settings specified in environment/release.rb and environment/debug.rb take precident
3
+ # over these settings.
4
+ #
5
+ # Load any custom Objective-C frameworks
6
+ # config.objc_frameworks = %w(webkit quartz iokit)
7
+ #
8
+ # Use active_record bindings
9
+ # config.use_active_record = true
10
+ #
11
+ end
@@ -0,0 +1,3 @@
1
+ # Perform any debug specific task here.
2
+
3
+ puts 'Debugging'
@@ -0,0 +1,3 @@
1
+ # Perform any release specific tasks here.
2
+
3
+ puts 'Releasing'
@@ -0,0 +1,3 @@
1
+ # Perform any test specific task here.
2
+
3
+ puts 'Testing'
@@ -0,0 +1,13 @@
1
+ # Interface Builder Class Definitions
2
+ #
3
+ # Interface Builder doesn't detect your custom classes by default.
4
+ # Identify class heirarchies here and make sure you run `rake ib:update`
5
+ # to notice the changes in Interface Builder.
6
+ #
7
+ # NSObject:
8
+ # - MyController
9
+ # - MyOtherController
10
+ # NSWindowController:
11
+ # - SomeWindowController:
12
+ # - SomeOtherController
13
+ #
@@ -0,0 +1,3 @@
1
+ CFBundleName = "<%= name %>";
2
+ CFBundleGetInfoString = "<%= name %> version 0.1, Copyright <%= Time.now.year %> <%= author%>.";
3
+ NSHumanReadableCopyright = "Copyright <%= Time.now.year %> <%= author%>.";
@@ -0,0 +1,40 @@
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>IBClasses</key>
6
+ <array>
7
+ <dict>
8
+ <key>CLASS</key>
9
+ <string>FirstResponder</string>
10
+ <key>LANGUAGE</key>
11
+ <string>ObjC</string>
12
+ <key>SUPERCLASS</key>
13
+ <string>NSObject</string>
14
+ </dict>
15
+ <dict>
16
+ <key>CLASS</key>
17
+ <string>ApplicationController</string>
18
+ <key>LANGUAGE</key>
19
+ <string>ObjC</string>
20
+ <key>OUTLETS</key>
21
+ <dict>
22
+ <key>main_window</key>
23
+ <string>id</string>
24
+ </dict>
25
+ <key>SUPERCLASS</key>
26
+ <string>RCController</string>
27
+ </dict>
28
+ <dict>
29
+ <key>CLASS</key>
30
+ <string>RCController</string>
31
+ <key>LANGUAGE</key>
32
+ <string>ObjC</string>
33
+ <key>SUPERCLASS</key>
34
+ <string>NSObject</string>
35
+ </dict>
36
+ </array>
37
+ <key>IBVersion</key>
38
+ <string>1</string>
39
+ </dict>
40
+ </plist>
@@ -0,0 +1,18 @@
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>IBFramework Version</key>
6
+ <string>629</string>
7
+ <key>IBOldestOS</key>
8
+ <integer>5</integer>
9
+ <key>IBOpenObjects</key>
10
+ <array>
11
+ <integer>21</integer>
12
+ </array>
13
+ <key>IBSystem Version</key>
14
+ <string>9A581</string>
15
+ <key>targetFramework</key>
16
+ <string>IBCocoaFramework</string>
17
+ </dict>
18
+ </plist>
@@ -0,0 +1,15 @@
1
+ //
2
+ // main.m
3
+ // <%= name %>
4
+ //
5
+ // Created by <%= author %> on <%= Date.today.to_s(:db) %>.
6
+ // Copyright (c) 2007 <%= author %>. All rights reserved.
7
+ //
8
+
9
+ #import <Cocoa/Cocoa.h>
10
+ #import <RubyCocoa/RBRuntime.h>
11
+
12
+ int main(int argc, const char *argv[])
13
+ {
14
+ return RBApplicationMain("rb_main.rb", argc, argv);
15
+ }
@@ -0,0 +1,13 @@
1
+ #
2
+ # rb_main.rb
3
+ # <%= name %>
4
+ #
5
+ # Created by <%= author %> on <%= Date.today.to_s(:db) %>.
6
+ # Copyright (c) 2007 <%= author %>. All rights reserved.
7
+ #
8
+
9
+ require 'rubygems'
10
+ require 'rucola'
11
+
12
+ # Start the application
13
+ Rucola::Initializer.boot
@@ -0,0 +1,299 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 42;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 4DDCA7070ACC9A6100E082CE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
11
+ 4DDCA7080ACC9A6100E082CE /* rb_main.rb in Resources */ = {isa = PBXBuildFile; fileRef = E8F5E25803AEB7C803A81C6F /* rb_main.rb */; };
12
+ 4DDCA70A0ACC9A6100E082CE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
13
+ 4DDCA70C0ACC9A6100E082CE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
14
+ 4DDCA70D0ACC9A6100E082CE /* RubyCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E8F5E24E03AEB6EC03A81C6F /* RubyCocoa.framework */; };
15
+ 514292CE0CC66CDC00F9CEEF /* app in Resources */ = {isa = PBXBuildFile; fileRef = 514292B90CC66CDC00F9CEEF /* app */; };
16
+ 514292CF0CC66CDC00F9CEEF /* config in Resources */ = {isa = PBXBuildFile; fileRef = 514292C10CC66CDC00F9CEEF /* config */; };
17
+ 514292D00CC66CDC00F9CEEF /* misc in Resources */ = {isa = PBXBuildFile; fileRef = 514292C40CC66CDC00F9CEEF /* misc */; };
18
+ 514292D10CC66CDC00F9CEEF /* test in Resources */ = {isa = PBXBuildFile; fileRef = 514292CA0CC66CDC00F9CEEF /* test */; };
19
+ 514292D20CC66CDC00F9CEEF /* vendor in Resources */ = {isa = PBXBuildFile; fileRef = 514292CC0CC66CDC00F9CEEF /* vendor */; };
20
+ 514292EF0CC6823A00F9CEEF /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 514292ED0CC6823A00F9CEEF /* MainMenu.nib */; };
21
+ /* End PBXBuildFile section */
22
+
23
+ /* Begin PBXFileReference section */
24
+ 089C165DFE840E0CC02AAC07 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = misc/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
25
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
26
+ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = main.m; path = misc/main.m; sourceTree = "<group>"; };
27
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
28
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
29
+ 4DDCA7110ACC9A6100E082CE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = Info.plist; path = config/Info.plist; sourceTree = "<group>"; };
30
+ 4DDCA7120ACC9A6100E082CE /* <%= name %>.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = <%= name %>.app; sourceTree = BUILT_PRODUCTS_DIR; };
31
+ 514292B90CC66CDC00F9CEEF /* app */ = {isa = PBXFileReference; lastKnownFileType = folder; path = app; sourceTree = "<group>"; };
32
+ 514292C10CC66CDC00F9CEEF /* config */ = {isa = PBXFileReference; lastKnownFileType = folder; path = config; sourceTree = "<group>"; };
33
+ 514292C40CC66CDC00F9CEEF /* misc */ = {isa = PBXFileReference; lastKnownFileType = folder; path = misc; sourceTree = "<group>"; };
34
+ 514292CA0CC66CDC00F9CEEF /* test */ = {isa = PBXFileReference; lastKnownFileType = folder; path = test; sourceTree = "<group>"; };
35
+ 514292CC0CC66CDC00F9CEEF /* vendor */ = {isa = PBXFileReference; lastKnownFileType = folder; path = vendor; sourceTree = "<group>"; };
36
+ 514292EE0CC6823A00F9CEEF /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = misc/English.lproj/MainMenu.nib; sourceTree = "<group>"; };
37
+ E8F5E24E03AEB6EC03A81C6F /* RubyCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RubyCocoa.framework; path = /Library/Frameworks/RubyCocoa.framework; sourceTree = "<absolute>"; };
38
+ E8F5E25803AEB7C803A81C6F /* rb_main.rb */ = {isa = PBXFileReference; lastKnownFileType = text.script.ruby; name = rb_main.rb; path = misc/rb_main.rb; sourceTree = "<group>"; };
39
+ /* End PBXFileReference section */
40
+
41
+ /* Begin PBXFrameworksBuildPhase section */
42
+ 4DDCA70B0ACC9A6100E082CE /* Frameworks */ = {
43
+ isa = PBXFrameworksBuildPhase;
44
+ buildActionMask = 2147483647;
45
+ files = (
46
+ 4DDCA70C0ACC9A6100E082CE /* Cocoa.framework in Frameworks */,
47
+ 4DDCA70D0ACC9A6100E082CE /* RubyCocoa.framework in Frameworks */,
48
+ );
49
+ runOnlyForDeploymentPostprocessing = 0;
50
+ };
51
+ /* End PBXFrameworksBuildPhase section */
52
+
53
+ /* Begin PBXGroup section */
54
+ 080E96DDFE201D6D7F000001 /* Classes */ = {
55
+ isa = PBXGroup;
56
+ children = (
57
+ );
58
+ name = Classes;
59
+ sourceTree = "<group>";
60
+ };
61
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
62
+ isa = PBXGroup;
63
+ children = (
64
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
65
+ E8F5E24E03AEB6EC03A81C6F /* RubyCocoa.framework */,
66
+ );
67
+ name = "Linked Frameworks";
68
+ sourceTree = "<group>";
69
+ };
70
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
71
+ isa = PBXGroup;
72
+ children = (
73
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
74
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
75
+ );
76
+ name = "Other Frameworks";
77
+ sourceTree = "<group>";
78
+ };
79
+ 19C28FACFE9D520D11CA2CBB /* Products */ = {
80
+ isa = PBXGroup;
81
+ children = (
82
+ 4DDCA7120ACC9A6100E082CE /* <%= name %>.app */,
83
+ );
84
+ name = Products;
85
+ sourceTree = "<group>";
86
+ };
87
+ 29B97314FDCFA39411CA2CEA /* <%= name %> */ = {
88
+ isa = PBXGroup;
89
+ children = (
90
+ 080E96DDFE201D6D7F000001 /* Classes */,
91
+ 29B97315FDCFA39411CA2CEA /* Other Sources */,
92
+ 29B97317FDCFA39411CA2CEA /* Resources */,
93
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
94
+ 19C28FACFE9D520D11CA2CBB /* Products */,
95
+ 4DDCA7110ACC9A6100E082CE /* Info.plist */,
96
+ );
97
+ name = <%= name %>;
98
+ sourceTree = "<group>";
99
+ };
100
+ 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
101
+ isa = PBXGroup;
102
+ children = (
103
+ 29B97316FDCFA39411CA2CEA /* main.m */,
104
+ 514292ED0CC6823A00F9CEEF /* MainMenu.nib */,
105
+ E8F5E25803AEB7C803A81C6F /* rb_main.rb */,
106
+ );
107
+ name = "Other Sources";
108
+ sourceTree = "<group>";
109
+ };
110
+ 29B97317FDCFA39411CA2CEA /* Resources */ = {
111
+ isa = PBXGroup;
112
+ children = (
113
+ 514292B90CC66CDC00F9CEEF /* app */,
114
+ 514292C10CC66CDC00F9CEEF /* config */,
115
+ 514292C40CC66CDC00F9CEEF /* misc */,
116
+ 514292CA0CC66CDC00F9CEEF /* test */,
117
+ 514292CC0CC66CDC00F9CEEF /* vendor */,
118
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
119
+ );
120
+ name = Resources;
121
+ sourceTree = "<group>";
122
+ };
123
+ 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
124
+ isa = PBXGroup;
125
+ children = (
126
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
127
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
128
+ );
129
+ name = Frameworks;
130
+ sourceTree = "<group>";
131
+ };
132
+ /* End PBXGroup section */
133
+
134
+ /* Begin PBXHeadersBuildPhase section */
135
+ 4DDCA7040ACC9A6100E082CE /* Headers */ = {
136
+ isa = PBXHeadersBuildPhase;
137
+ buildActionMask = 2147483647;
138
+ files = (
139
+ );
140
+ runOnlyForDeploymentPostprocessing = 0;
141
+ };
142
+ /* End PBXHeadersBuildPhase section */
143
+
144
+ /* Begin PBXNativeTarget section */
145
+ 4DDCA7030ACC9A6100E082CE /* <%= name %> */ = {
146
+ isa = PBXNativeTarget;
147
+ buildConfigurationList = 4DDCA70E0ACC9A6100E082CE /* Build configuration list for PBXNativeTarget "<%= name %>" */;
148
+ buildPhases = (
149
+ 4DDCA7040ACC9A6100E082CE /* Headers */,
150
+ 4DDCA7050ACC9A6100E082CE /* Resources */,
151
+ 4DDCA7090ACC9A6100E082CE /* Sources */,
152
+ 4DDCA70B0ACC9A6100E082CE /* Frameworks */,
153
+ );
154
+ buildRules = (
155
+ );
156
+ dependencies = (
157
+ );
158
+ name = <%= name %>;
159
+ productInstallPath = "$(HOME)/Applications";
160
+ productName = <%= name %>;
161
+ productReference = 4DDCA7120ACC9A6100E082CE /* <%= name %>.app */;
162
+ productType = "com.apple.product-type.application";
163
+ };
164
+ /* End PBXNativeTarget section */
165
+
166
+ /* Begin PBXProject section */
167
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
168
+ isa = PBXProject;
169
+ buildConfigurationList = 4D7A7B570ABF745500C2D4C0 /* Build configuration list for PBXProject "<%= name %>" */;
170
+ hasScannedForEncodings = 0;
171
+ mainGroup = 29B97314FDCFA39411CA2CEA /* <%= name %> */;
172
+ projectDirPath = "";
173
+ projectRoot = "";
174
+ targets = (
175
+ 4DDCA7030ACC9A6100E082CE /* <%= name %> */,
176
+ );
177
+ };
178
+ /* End PBXProject section */
179
+
180
+ /* Begin PBXResourcesBuildPhase section */
181
+ 4DDCA7050ACC9A6100E082CE /* Resources */ = {
182
+ isa = PBXResourcesBuildPhase;
183
+ buildActionMask = 2147483647;
184
+ files = (
185
+ 4DDCA7070ACC9A6100E082CE /* InfoPlist.strings in Resources */,
186
+ 4DDCA7080ACC9A6100E082CE /* rb_main.rb in Resources */,
187
+ 514292CE0CC66CDC00F9CEEF /* app in Resources */,
188
+ 514292CF0CC66CDC00F9CEEF /* config in Resources */,
189
+ 514292D00CC66CDC00F9CEEF /* misc in Resources */,
190
+ 514292D10CC66CDC00F9CEEF /* test in Resources */,
191
+ 514292D20CC66CDC00F9CEEF /* vendor in Resources */,
192
+ 514292EF0CC6823A00F9CEEF /* MainMenu.nib in Resources */,
193
+ );
194
+ runOnlyForDeploymentPostprocessing = 0;
195
+ };
196
+ /* End PBXResourcesBuildPhase section */
197
+
198
+ /* Begin PBXSourcesBuildPhase section */
199
+ 4DDCA7090ACC9A6100E082CE /* Sources */ = {
200
+ isa = PBXSourcesBuildPhase;
201
+ buildActionMask = 2147483647;
202
+ files = (
203
+ 4DDCA70A0ACC9A6100E082CE /* main.m in Sources */,
204
+ );
205
+ runOnlyForDeploymentPostprocessing = 0;
206
+ };
207
+ /* End PBXSourcesBuildPhase section */
208
+
209
+ /* Begin PBXVariantGroup section */
210
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
211
+ isa = PBXVariantGroup;
212
+ children = (
213
+ 089C165DFE840E0CC02AAC07 /* InfoPlist.strings */,
214
+ );
215
+ name = InfoPlist.strings;
216
+ sourceTree = "<group>";
217
+ };
218
+ 514292ED0CC6823A00F9CEEF /* MainMenu.nib */ = {
219
+ isa = PBXVariantGroup;
220
+ children = (
221
+ 514292EE0CC6823A00F9CEEF /* English */,
222
+ );
223
+ name = MainMenu.nib;
224
+ sourceTree = "<group>";
225
+ };
226
+ /* End PBXVariantGroup section */
227
+
228
+ /* Begin XCBuildConfiguration section */
229
+ 4D7A7B580ABF745500C2D4C0 /* Debug */ = {
230
+ isa = XCBuildConfiguration;
231
+ buildSettings = {
232
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
233
+ GCC_WARN_UNUSED_VARIABLE = YES;
234
+ PREBINDING = NO;
235
+ };
236
+ name = Debug;
237
+ };
238
+ 4D7A7B590ABF745500C2D4C0 /* Release */ = {
239
+ isa = XCBuildConfiguration;
240
+ buildSettings = {
241
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
242
+ GCC_WARN_UNUSED_VARIABLE = YES;
243
+ PREBINDING = NO;
244
+ };
245
+ name = Release;
246
+ };
247
+ 4DDCA70F0ACC9A6100E082CE /* Debug */ = {
248
+ isa = XCBuildConfiguration;
249
+ buildSettings = {
250
+ COPY_PHASE_STRIP = NO;
251
+ GCC_DYNAMIC_NO_PIC = NO;
252
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
253
+ GCC_MODEL_TUNING = G5;
254
+ GCC_OPTIMIZATION_LEVEL = 0;
255
+ INFOPLIST_FILE = Info.plist;
256
+ INSTALL_PATH = "$(HOME)/Applications";
257
+ PRODUCT_NAME = <%= name %>;
258
+ WRAPPER_EXTENSION = app;
259
+ ZERO_LINK = YES;
260
+ };
261
+ name = Debug;
262
+ };
263
+ 4DDCA7100ACC9A6100E082CE /* Release */ = {
264
+ isa = XCBuildConfiguration;
265
+ buildSettings = {
266
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
267
+ GCC_MODEL_TUNING = G5;
268
+ INFOPLIST_FILE = Info.plist;
269
+ INSTALL_PATH = "$(HOME)/Applications";
270
+ PRODUCT_NAME = <%= name %>;
271
+ WRAPPER_EXTENSION = app;
272
+ };
273
+ name = Release;
274
+ };
275
+ /* End XCBuildConfiguration section */
276
+
277
+ /* Begin XCConfigurationList section */
278
+ 4D7A7B570ABF745500C2D4C0 /* Build configuration list for PBXProject "<%= name %>" */ = {
279
+ isa = XCConfigurationList;
280
+ buildConfigurations = (
281
+ 4D7A7B580ABF745500C2D4C0 /* Debug */,
282
+ 4D7A7B590ABF745500C2D4C0 /* Release */,
283
+ );
284
+ defaultConfigurationIsVisible = 0;
285
+ defaultConfigurationName = Release;
286
+ };
287
+ 4DDCA70E0ACC9A6100E082CE /* Build configuration list for PBXNativeTarget "<%= name %>" */ = {
288
+ isa = XCConfigurationList;
289
+ buildConfigurations = (
290
+ 4DDCA70F0ACC9A6100E082CE /* Debug */,
291
+ 4DDCA7100ACC9A6100E082CE /* Release */,
292
+ );
293
+ defaultConfigurationIsVisible = 0;
294
+ defaultConfigurationName = Release;
295
+ };
296
+ /* End XCConfigurationList section */
297
+ };
298
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
299
+ }