Sha256: 3bcb0a92567e16a883155a847d508846c1af2c88a1ba818cf361e1a0c7d83d3d
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
module IRC class Server attr_accessor :config, :connection, :handlers config_accessor :address, :port, :nick, :ident, :realname, :ssl def initialize(config) @config = config @handlers = {} end def on(event, &block) @handlers[event.to_s.downcase.to_sym] = Callback.new(block) end Config = Struct.new(:address, :port, :nick, :ident, :realname, :ssl) class ConfigDSL dsl_accessor :address, :port, :nick, :ident, :realname bool_dsl_accessor :ssl def self.run(&block) confdsl = self.new block.arity < 1 ? confdsl.instance_eval(&block) : block.call(confdsl) raise ConfigError, 'no address' unless confdsl.address conf = Config.new conf.address = confdsl.address # If not supplied, the port defaults to 6667, or 6697 if ssl is used conf.port = confdsl.port || (confdsl.ssl? ? 6697 : 6667) conf.ssl = confdsl.ssl? conf.nick = confdsl.nick conf.ident = confdsl.ident conf.realname = confdsl.realname conf end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
on_irc-2.0.0 | lib/on_irc/server.rb |