From d6b283bba7873fd41f1eaa4145d9150d5ae41449 Mon Sep 17 00:00:00 2001 From: Mathias Meyer Date: Thu, 22 Jan 2009 09:54:01 +0100 Subject: [PATCH] Made PreferencesController IB outlets more Ruby-like. Now accepting URLs without http:// in front, will just be added for convenience's sake. --- English.lproj/MainMenu.nib/designable.nib | 132 ++++++++++---------- English.lproj/MainMenu.nib/keyedobjects.nib | Bin 18062 -> 18080 bytes controller/preferences_controller.rb | 59 +++++---- controller/project_controller.rb | 1 - model/host.rb | 7 +- spec/host_spec.rb | 19 ++- 6 files changed, 115 insertions(+), 103 deletions(-) diff --git a/English.lproj/MainMenu.nib/designable.nib b/English.lproj/MainMenu.nib/designable.nib index 3976790..763aeeb 100644 --- a/English.lproj/MainMenu.nib/designable.nib +++ b/English.lproj/MainMenu.nib/designable.nib @@ -8,10 +8,10 @@ 353.00 YES + + - - YES @@ -40,7 +40,7 @@ 2 {{196, 216}, {285, 294}} 1677722624 - Window + Run Task NSWindow {3.40282e+38, 3.40282e+38} @@ -227,9 +227,7 @@ 2 {{363, 594}, {332, 396}} 1886912512 - - Window - + Preferences NSWindow @@ -767,38 +765,6 @@ 481 - - - hostField - - - - 482 - - - - newHostSheet - - - - 483 - - - - passwordField - - - - 484 - - - - preferencesWindow - - - - 485 - spinner @@ -807,22 +773,6 @@ 486 - - - tableView - - - - 487 - - - - usernameField - - - - 488 - add: @@ -927,6 +877,54 @@ 525 + + + preferences_window + + + + 526 + + + + table_view + + + + 527 + + + + new_host_sheet + + + + 528 + + + + host_field + + + + 529 + + + + password_field + + + + 530 + + + + username_field + + + + 531 + @@ -1533,9 +1531,9 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{557, 344}, {371, 206}} + {{647, 562}, {371, 206}} com.apple.InterfaceBuilder.CocoaPlugin - {{557, 344}, {371, 206}} + {{647, 562}, {371, 206}} {{120, 647}, {371, 206}} com.apple.InterfaceBuilder.CocoaPlugin @@ -1561,9 +1559,9 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{502, 604}, {571, 327}} + {{418, 604}, {571, 327}} com.apple.InterfaceBuilder.CocoaPlugin - {{502, 604}, {571, 327}} + {{418, 604}, {571, 327}} {571, 303} @@ -1599,7 +1597,7 @@ - 525 + 531 @@ -1628,15 +1626,13 @@ YES YES - addButton - cancelButton - hostField - newHostSheet - passwordField - preferencesWindow + host_field + new_host_sheet + password_field + preferences_window spinner - tableView - usernameField + table_view + username_field YES @@ -1647,8 +1643,6 @@ id id id - id - id diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index 404511a66c64e70a32cf3b91bcb62ed1b81ee420..8770234e2940504c4722d00554134ebd9cbd1fff 100644 GIT binary patch literal 18080 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 WUcPif08y0uSCJt94gAjQ^8Wxu?A!kU literal 18062 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 zÐ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 J!`~d+{{eXpw_^YR diff --git a/controller/preferences_controller.rb b/controller/preferences_controller.rb index e5df3e6..22b5982 100644 --- a/controller/preferences_controller.rb +++ b/controller/preferences_controller.rb @@ -9,15 +9,13 @@ class PreferencesController < OSX::NSWindowController notify :host_version_not_accepted, :when => :host_version_inacceptable notify :host_credentials_invalid, :when => :host_credentials_invalid - ib_outlet :preferencesWindow - ib_outlet :tableView - ib_outlet :newHostSheet - ib_outlet :addButton - ib_outlet :cancelButton + ib_outlet :preferences_window + ib_outlet :table_view + ib_outlet :new_host_sheet ib_outlet :spinner - ib_outlet :hostField - ib_outlet :usernameField - ib_outlet :passwordField + ib_outlet :host_field + ib_outlet :username_field + ib_outlet :password_field def init init_hosts @@ -53,53 +51,52 @@ def fetchPasswords def showPreferences NSApp.activateIgnoringOtherApps true self.showWindow(self) - @preferencesWindow.makeKeyAndOrderFront(self) - @preferencesWindow.setTitle("Preferences") + @preferences_window.makeKeyAndOrderFront(self) end - def numberOfRowsInTableView(tableView) + def numberOfRowsInTableView(table_view) @hosts.size end - def tableView_objectValueForTableColumn_row(tableView, column, row) + def tableView_objectValueForTableColumn_row(table_view, column, row) @hosts[row].url end ib_action :add do - NSApp.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo(@newHostSheet, @preferencesWindow, nil, nil, nil) - NSApp.endSheet @newHostSheet + NSApp.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo(@new_host_sheet, @preferences_window, nil, nil, nil) + NSApp.endSheet @new_host_sheet end ib_action :addFromSheet do @spinner.startAnimation(self) @spinner.setHidden(false) host = Host.new - host.url = @hostField.stringValue - host.username = @usernameField.stringValue - host.password = @passwordField.stringValue.to_s + host.url = @host_field.stringValue + host.username = @username_field.stringValue + host.password = @password_field.stringValue.to_s host.schedule_version_check end def host_version_accepted(notification) # ignore messages to instances not connected to the nib. weird side effect of having an instance # of the controller in the project_controller - return if @hostField.nil? + return if @host_field.nil? host = notification.object add_host host - @newHostSheet.orderOut self - @tableView.reloadData + @new_host_sheet.orderOut self + @table_view.reloadData host.find_projects end def host_version_not_accepted(notification) - return if @hostField.nil? + return if @host_field.nil? host = notification.object show_alert("The Webistrano version you're running is not suitable for use with Macistrano", "You need at least version #{Host::ACCEPT_VERSION.join(".")}.") reset_spinner end def host_credentials_invalid(notification) - return if @hostField.nil? + return if @host_field.nil? show_alert("The specified credentials are invalid.", "Please check username and password and try again.") reset_spinner end @@ -126,18 +123,18 @@ def reset_spinner end ib_action :removeHost do - unless @tableView.selectedRow < 0 - host = @hosts[@tableView.selectedRow] + unless @table_view.selectedRow < 0 + host = @hosts[@table_view.selectedRow] Keychain.remove_password host - @hosts.delete_at(@tableView.selectedRow) + @hosts.delete_at(@table_view.selectedRow) save_hosts_to_preferences notify_host_removed host - @tableView.reloadData + @table_view.reloadData end end def closeSheet - @newHostSheet.orderOut self + @new_host_sheet.orderOut self end def add_host host @@ -160,9 +157,9 @@ def hosts_as_list end def reset_fields - @hostField.setStringValue "" - @newHostSheet.makeFirstResponder @hostField - @passwordField.setStringValue "" - @usernameField.setStringValue "" + @host_field.setStringValue "" + @new_host_sheet.makeFirstResponder @host_field + @password_field.setStringValue "" + @username_field.setStringValue "" end end diff --git a/controller/project_controller.rb b/controller/project_controller.rb index 7d3a2af..4fc1027 100644 --- a/controller/project_controller.rb +++ b/controller/project_controller.rb @@ -155,7 +155,6 @@ def clicked(sender) @task_field.setStringValue(sender.representedObject.name) NSApp.activateIgnoringOtherApps(true) @run_task_dialog.makeFirstResponder(@description_field) - @run_task_dialog.setTitle("Run Task") @run_task_dialog.makeKeyAndOrderFront(self) @run_task_dialog.center end diff --git a/model/host.rb b/model/host.rb index 5a3f082..daff2bf 100644 --- a/model/host.rb +++ b/model/host.rb @@ -24,8 +24,13 @@ def init @projects = [] self end + + def url=(url) + url = "http://#{url}" unless url.index("http://") == 0 or url.index("https://") == 0 + @url = url + end - def read_xml path + def read_xml(path) io = open("#{url}#{path}", :http_basic_authentication => [username, password]) io.read end diff --git a/spec/host_spec.rb b/spec/host_spec.rb index 2a43457..b429985 100644 --- a/spec/host_spec.rb +++ b/spec/host_spec.rb @@ -153,8 +153,25 @@ def fetch_stages end end -describe Host, "when checking for the host version" do +describe Host, "when setting the url" do + before(:each) do + @host = Host.new + end + + it "should append http:// if url is not complete" do + @host.url = "webistrano.local" + @host.url.should == "http://webistrano.local" + end + it "should not append http:// if url has http:// set" do + @host.url = "http://webistrano.local" + @host.url.should == "http://webistrano.local" + end + + it "should not append http:// if url has https:// set" do + @host.url = "https://webistrano.local" + @host.url.should == "https://webistrano.local" + end end describe Host, "when notified that a project finished loading" do