rucola 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +628 -0
- data/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +106 -0
- data/README.txt +126 -0
- data/Rakefile +32 -0
- data/TODO +28 -0
- data/app_generators/rucola/USAGE +6 -0
- data/app_generators/rucola/rucola_generator.rb +112 -0
- data/app_generators/rucola/templates/Rakefile.erb +12 -0
- data/app_generators/rucola/templates/Rakefile.erb.old +156 -0
- data/app_generators/rucola/templates/app/controllers/application_controller.rb +22 -0
- data/app_generators/rucola/templates/config/Info.plist.erb +28 -0
- data/app_generators/rucola/templates/config/boot.rb +2 -0
- data/app_generators/rucola/templates/config/environment.rb +11 -0
- data/app_generators/rucola/templates/config/environments/debug.rb +3 -0
- data/app_generators/rucola/templates/config/environments/release.rb +3 -0
- data/app_generators/rucola/templates/config/environments/test.rb +3 -0
- data/app_generators/rucola/templates/config/ib_external_class_defs.yml +13 -0
- data/app_generators/rucola/templates/misc/English.lproj/InfoPlist.strings.erb +3 -0
- data/app_generators/rucola/templates/misc/English.lproj/MainMenu.nib/classes.nib +40 -0
- data/app_generators/rucola/templates/misc/English.lproj/MainMenu.nib/info.nib +18 -0
- data/app_generators/rucola/templates/misc/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
- data/app_generators/rucola/templates/misc/main.m.erb +15 -0
- data/app_generators/rucola/templates/misc/rb_main.rb.erb +13 -0
- data/app_generators/rucola/templates/project.pbxproj.erb +299 -0
- data/app_generators/rucola/templates/script/plugin +84 -0
- data/app_generators/rucola/templates/test/controllers/test_application_controller.rb +10 -0
- data/app_generators/rucola/templates/test/test_helper.rb +10 -0
- data/bin/rucola +12 -0
- data/config/hoe.rb +71 -0
- data/config/requirements.rb +17 -0
- data/lib/rucola.rb +3 -0
- data/lib/rucola/info_plist.rb +37 -0
- data/lib/rucola/initializer.rb +313 -0
- data/lib/rucola/nib.rb +99 -0
- data/lib/rucola/rucola_support.rb +9 -0
- data/lib/rucola/rucola_support/controllers.rb +2 -0
- data/lib/rucola/rucola_support/controllers/rc_controller.rb +7 -0
- data/lib/rucola/rucola_support/controllers/rc_window_controller.rb +12 -0
- data/lib/rucola/rucola_support/core_ext.rb +2 -0
- data/lib/rucola/rucola_support/core_ext/objc.rb +4 -0
- data/lib/rucola/rucola_support/core_ext/objc/nsobject.rb +22 -0
- data/lib/rucola/rucola_support/core_ext/ruby.rb +4 -0
- data/lib/rucola/rucola_support/core_ext/ruby/string.rb +21 -0
- data/lib/rucola/rucola_support/initialize_hooks.rb +21 -0
- data/lib/rucola/rucola_support/models.rb +1 -0
- data/lib/rucola/rucola_support/models/rc_document.rb +10 -0
- data/lib/rucola/rucola_support/notifications.rb +1 -0
- data/lib/rucola/rucola_support/notifications/notifications.rb +146 -0
- data/lib/rucola/rucola_support/rc_app.rb +101 -0
- data/lib/rucola/tasks/freeze.rake +44 -0
- data/lib/rucola/tasks/interface_builder.rake +80 -0
- data/lib/rucola/tasks/main.rake +29 -0
- data/lib/rucola/tasks/xcode.rake +43 -0
- data/lib/rucola/test_helper.rb +57 -0
- data/lib/rucola/version.rb +9 -0
- data/lib/rucola/xcode.rb +148 -0
- data/log/debug.log +0 -0
- data/rucola_generators/controller/USAGE +5 -0
- data/rucola_generators/controller/controller_generator.rb +84 -0
- data/rucola_generators/controller/templates/controller_template.rb.erb +5 -0
- data/rucola_generators/controller/templates/test_controller_template.rb.erb +10 -0
- data/rucola_generators/document_model/USAGE +5 -0
- data/rucola_generators/document_model/document_model_generator.rb +67 -0
- data/rucola_generators/document_model/templates/document_model_template.rb.erb +27 -0
- data/rucola_generators/document_model/templates/test_document_model_template.rb.erb +10 -0
- data/rucola_generators/window_controller/USAGE +6 -0
- data/rucola_generators/window_controller/templates/Window.nib/classes.nib.erb +35 -0
- data/rucola_generators/window_controller/templates/Window.nib/info.nib +16 -0
- data/rucola_generators/window_controller/templates/Window.nib/keyedobjects.nib +0 -0
- data/rucola_generators/window_controller/templates/test_window_controller_template.rb.erb +10 -0
- data/rucola_generators/window_controller/templates/window_controller_template.rb.erb +19 -0
- data/rucola_generators/window_controller/window_controller_generator.rb +74 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +74 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +27 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +17 -0
- data/test/fixtures/Info.plist +28 -0
- data/test/fixtures/MainMenu.nib/classes.nib +32 -0
- data/test/fixtures/MainMenu.nib/info.nib +18 -0
- data/test/fixtures/MainMenu.nib/keyedobjects.nib +0 -0
- data/test/test_controller_generator.rb +75 -0
- data/test/test_core_ext.rb +15 -0
- data/test/test_document_model_generator.rb +64 -0
- data/test/test_generator_helper.rb +20 -0
- data/test/test_helper.rb +13 -0
- data/test/test_info_plist.rb +31 -0
- data/test/test_nib.rb +73 -0
- data/test/test_notifications.rb +75 -0
- data/test/test_objc_core_ext.rb +37 -0
- data/test/test_rc_app.rb +63 -0
- data/test/test_rc_document.rb +18 -0
- data/test/test_rc_window_controller.rb +13 -0
- data/test/test_rucola.rb +11 -0
- data/test/test_rucola_generator.rb +87 -0
- data/test/test_window_controller_generator.rb +50 -0
- data/test/test_xcode.rb +128 -0
- data/website/index.html +199 -0
- data/website/index.txt +126 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.rhtml +48 -0
- 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,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,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,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>
|
Binary file
|
@@ -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
|
+
}
|