lib/marvin/irc/event.rb in jeffrafter-marvin-0.1.20081115 vs lib/marvin/irc/event.rb in jeffrafter-marvin-0.1.20081120

- old
+ new

@@ -1,30 +1,35 @@ module Marvin::IRC class Event - attr_accessor :keys, :name, :raw_arguments + attr_accessor :keys, :name, :raw_arguments, :prefix def initialize(name, *args) self.name = name.to_sym self.keys = args.flatten.map { |k| k.to_sym } end def to_hash - return {} unless self.raw_arguments + return @hash_value unless @hash_value.blank? results = {} values = self.raw_arguments.to_a last_index = self.keys.size - 1 self.keys.each_with_index do |key, i| results[key] = (i == last_index ? values.join(" ").strip : values.shift) end - return results + results.merge!(prefix.to_hash) unless prefix.blank? + return (@hash_value = results) end def inspect - "#<Marvin::IRC::Event name=#{self.name} attributes=[#{keys * ","}] >" + "#<Marvin::IRC::Event name=#{self.name} attributes=#{self.to_hash.inspect} >" end def to_incoming_event_name :"incoming_#{self.name}" + end + + def to_outgoing_event_name + :"outgoing_#{self.name}" end end end \ No newline at end of file