From fa5807cc0b5c2a97577630e8b3bd53ab013c380c Mon Sep 17 00:00:00 2001 From: Vincent Isambart Date: Sat, 1 Nov 2008 22:46:01 +0900 Subject: [PATCH] initial commit --- .gitignore | 1 + Rakefile | 18 ++++++++ config/build.yml | 8 ++++ lib/application.rb | 97 ++++++++++++++++++++++++++++++++++++++++ lib/menu.rb | 32 +++++++++++++ resources/HotCocoa.icns | Bin 0 -> 49618 bytes 6 files changed, 156 insertions(+) create mode 100644 .gitignore create mode 100644 Rakefile create mode 100644 config/build.yml create mode 100644 lib/application.rb create mode 100644 lib/menu.rb create mode 100644 resources/HotCocoa.icns diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..13d94f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.app diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..4cd1286 --- /dev/null +++ b/Rakefile @@ -0,0 +1,18 @@ +task :default => [:run] + +task :build do + require 'hotcocoa/application_builder' + ApplicationBuilder.build :file => "config/build.yml" +end + +task :run => [:build] do + require 'yaml' + app_name = YAML.load(File.read("config/build.yml"))[:name] + `open "#{app_name}.app"` +end + +task :clean do + require 'yaml' + app_name = YAML.load(File.read("config/build.yml"))[:name] + `rm -rf "#{app_name}.app"` +end diff --git a/config/build.yml b/config/build.yml new file mode 100644 index 0000000..fc07370 --- /dev/null +++ b/config/build.yml @@ -0,0 +1,8 @@ +:name: MacIrb +:load: lib/application.rb +:version: "1.0" +:icon: resources/HotCocoa.icns +:resources: + - resources/**/*.* +:sources: + - lib/**/*.rb diff --git a/lib/application.rb b/lib/application.rb new file mode 100644 index 0000000..180a0eb --- /dev/null +++ b/lib/application.rb @@ -0,0 +1,97 @@ +require 'hotcocoa' +framework 'webkit' + +class Application + include HotCocoa + + def start + @line_num = 1 + @binding = TOPLEVEL_BINDING + + def base_html + return <<-HTML + + + + + + + +
>>
+ + + + HTML + end + + application :name => "MacIrb" do |app| + app.delegate = self + + window :frame => [100, 100, 900, 500], :title => "MacIrb" do |win| + win.will_close { exit } + @web_view = web_view(:layout => {:expand => [:width, :height]}) + @web_view.mainFrame.loadHTMLString base_html, baseURL:nil + win << @web_view + end +# @display = label(:text => '', :layout => {:expand => [:width, :height]}) +# @command_line = text_field(:layout => {:expand => [:width]}) +# win << @command_line +# win << @display +# @command_line.on_action do +# self.perform_action +# end + end + end + + def perform_action + @line_num += 1 + command = @command_line.to_s + return if command.empty? + eval_file = __FILE__ + eval_line = -1 + begin + eval_line = __LINE__; value = eval(command, @binding, 'macirb', @line_num-1) + @display.text = value.inspect + rescue Exception => e + backtrace = e.backtrace + i = backtrace.index { |l| l.index("#{eval_file}:#{eval_line}") } + puts "#{eval_file}:#{eval_line}" + puts i + backtrace = backtrace[0..i-1] if i + @display.text = "#{e.class.name}: #{e.message}\n#{backtrace.join("\n")}" + end + @command_line.text = '' + end + + # file/open + def on_open(menu) + end + + # file/new + def on_new(menu) + end + + # help menu item + def on_help(menu) + end + + # This is commented out, so the minimize menu item is disabled + #def on_minimize(menu) + #end + + # window/zoom + def on_zoom(menu) + end + + # window/bring_all_to_front + def on_bring_all_to_front(menu) + end +end + +Application.new.start diff --git a/lib/menu.rb b/lib/menu.rb new file mode 100644 index 0000000..be16f5c --- /dev/null +++ b/lib/menu.rb @@ -0,0 +1,32 @@ +module HotCocoa + def application_menu + menu do |main| + main.submenu :apple do |apple| + apple.item :about, :title => "About #{NSApp.name}" + apple.separator + apple.item :preferences, :key => "," + apple.separator + apple.submenu :services + apple.separator + apple.item :hide, :title => "Hide #{NSApp.name}", :key => "h" + apple.item :hide_others, :title => "Hide Others", :key => "h", :modifiers => [:command, :alt] + apple.item :show_all, :title => "Show All" + apple.separator + apple.item :quit, :title => "Quit #{NSApp.name}", :key => "q" + end + main.submenu :file do |file| + file.item :new, :key => "n" + file.item :open, :key => "o" + end + main.submenu :window do |win| + win.item :minimize, :key => "m" + win.item :zoom + win.separator + win.item :bring_all_to_front, :title => "Bring All to Front", :key => "o" + end + main.submenu :help do |help| + help.item :help, :title => "#{NSApp.name} Help" + end + end + end +end diff --git a/resources/HotCocoa.icns b/resources/HotCocoa.icns new file mode 100644 index 0000000000000000000000000000000000000000..36e449cf4dd48b4accc69bcac9872d18b6758616 GIT binary patch literal 49618 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 literal 0 HcmV?d00001