templates/Rakefile in newcocoa-0.0.1 vs templates/Rakefile in newcocoa-0.0.2
- old
+ new
@@ -10,10 +10,11 @@
APPNAME = "<%=appname%>"
TARGET = "#{APPNAME}.app"
VERSION = "rev#{`svn info`[/Revision: (\d+)/, 1]}"
RESOURCES = ['*.rb', '*.lproj', 'Credits.*', '*.icns']
PKGINC = [TARGET, 'README', 'html', 'client']
+LOCALENIB = ['Japanese.lproj/Main.nib']
PUBLISH = 'yourname@yourhost:path'
BUNDLEID = "rubyapp.#{APPNAME}"
CLEAN.include ['**/.*.sw?', '*.dmg', TARGET, 'image', 'a.out']
@@ -21,11 +22,11 @@
# Tasks
task :default => [:test]
desc 'Create Application Budle and Run it.'
task :test => [TARGET] do
- sh %{open #{TARGET}}
+ sh %{open '#{TARGET}'}
end
desc 'Create .dmg file for Publish'
task :package => [:clean, 'pkg', TARGET] do
name = "#{APPNAME}.#{VERSION}"
@@ -55,27 +56,39 @@
scp CHANGES #{PUBLISH}/pkg
scp -r html/* #{PUBLISH}
}
end
+desc 'Make Localized nib from English.lproj and Lang.lproj/nib.strings'
+rule(/.nib$/ => [proc {|tn| File.dirname(tn) + '/nib.strings' }]) do |t|
+ p t.name
+ lproj = File.dirname(t.name)
+ target = File.basename(t.name)
+ sh %{
+ rm -rf #{t.name}
+ nibtool -d #{lproj}/nib.strings -w #{t.name} English.lproj/#{target}
+ }
+end
+
# File tasks
-file TARGET => [:clean, APPNAME] do
+desc 'Make executable Application Bundle'
+file TARGET => [:clean, APPNAME] + LOCALENIB do
sh %{
mkdir -p "#{APPNAME}.app/Contents/MacOS"
mkdir "#{APPNAME}.app/Contents/Resources"
cp -rp #{RESOURCES.join(' ')} "#{APPNAME}.app/Contents/Resources"
- cp #{APPNAME} "#{APPNAME}.app/Contents/MacOS"
+ cp '#{APPNAME}' "#{APPNAME}.app/Contents/MacOS"
echo -n "APPL????" > "#{APPNAME}.app/Contents/PkgInfo"
echo -n #{VERSION} > "#{APPNAME}.app/Contents/Resources/VERSION"
}
File.open("#{APPNAME}.app/Contents/Info.plist", "w") do |f|
f.puts ERB.new(File.read("Info.plist.erb")).result
end
end
file APPNAME => ['main.m'] do
# Universal Binary
- sh %{gcc -arch ppc -arch i386 -Wall -lobjc -framework RubyCocoa main.m -o #{APPNAME}}
+ sh %{gcc -arch ppc -arch i386 -Wall -lobjc -framework RubyCocoa main.m -o '#{APPNAME}'}
end
directory 'pkg'