Author: nornagon
Date: 2005-07-06 21:43:50 -0400 (Wed, 06 Jul 2005)
New Revision: 850
Modified:
trunk/clients/ravish/ravish2.rb
Log:
Ravish has a config file.
Modified: trunk/clients/ravish/ravish2.rb
===================================================================
--- trunk/clients/ravish/ravish2.rb 2005-07-07 00:17:12 UTC (rev 849)
+++ trunk/clients/ravish/ravish2.rb 2005-07-07 01:43:50 UTC (rev 850)
@@ -4,6 +4,7 @@
$:.unshift "lib"
require 'term/visual'
+require 'yaml'
require 'haver'
Thread.abort_on_exception = true
@@ -45,7 +46,18 @@
|k| "A-#{k}" } => :switch_window
}
- def initialize server, port=7575
+ ConfDefaults = {
+ 'server' => 'hardison.net',
+ 'port' => 7575,
+ 'nick' => 'RavishUser',
+ }
+
+ ConfFile = '.ravishrc'
+
+ def initialize conffile = ConfFile
+ @conffile = conffile
+ loadconf
+ at_exit { saveconf }
@term = Term::Visual.new
@term.palette.setcolors Palette
@term.global_prefix = self.method :global_prefix
@@ -62,13 +74,13 @@
@term.bind k, v
end
}
- @servwin = Window.new(@term.create_window('title' => server),
:server,
- 'server' => server, 'port' => port, 'name' =>
server)
+ @servwin = Window.new(@term.create_window(
+ 'title' => "Ravish v0.1.2 - Haver client in Ruby"),
:server,
+ 'server' => @conf['server'], 'port' =>
@conf['port'],
+ 'name' => @conf['server'])
@windows = [EMAIL PROTECTED]
statbar_wheel
- @server = server
- @port = port
- @haver = Haver::Client.new server
+ @haver = Haver::Client.new @conf['server']
@haver.add_observer self
@haver.start
end
@@ -97,10 +109,10 @@
def update type, *args
case type
when :connecting
- srvmsg "Connecting to [EMAIL PROTECTED]:[EMAIL
PROTECTED]"
+ srvmsg "Connecting to [EMAIL
PROTECTED]'server']}:[EMAIL PROTECTED]'port']}..."
when :connected
srvmsg 'Connected.'
- @haver.msg 'HAVER', 'Ravish/0.1.0'
+ @haver.msg 'HAVER', 'Ravish/0.1.2'
when :link_failed
srvmsg "Link failed: #{args[0]}"
when :message_sent
@@ -120,6 +132,29 @@
## HELPER METHODS ##
+ def loadconf [EMAIL PROTECTED]
+ if File.exists?(file) and File.readable?(file)
+ File.open(file) { |cf|
+ c = YAML.load cf
+ if c.respond_to?(:to_hash)
+ @conf = ConfDefaults.merge(c)
+ else
+ @conf = ConfDefaults
+ end
+ }
+ else
+ @conf = ConfDefaults
+ end
+ end
+
+ def saveconf [EMAIL PROTECTED]
+ if !File.exists?(file) or File.writable?(file)
+ File.open(file, 'w') { |cf|
+ YAML.dump @conf, cf
+ }
+ end
+ end
+
def srvmsg *args
args.each { |arg|
@servwin.window.addline arg, ServerPrefix
@@ -214,7 +249,7 @@
def ev_HAVER server, version
srvmsg "Server #{server} running #{version}"
- @haver.msg 'IDENT', 'nornagon'
+ @haver.msg 'IDENT', @conf['nick']
activity @servwin, 2
end
@@ -362,6 +397,6 @@
alias_method :user_LIST, :user_NAMES
end
-ravish = Ravish.new 'hardison.net'
+ravish = Ravish.new
EventManager.instance.run