class Net::IRC::Message
Attributes
command[R]
params[R]
prefix[R]
Public Class Methods
new(prefix, command, params)
click to toggle source
# File lib/net/irc/message.rb 35 def initialize(prefix, command, params) 36 @prefix = Prefix.new(prefix.to_s) 37 @command = command 38 @params = params 39 end
parse(str)
click to toggle source
Parse string and return new Message
. If the string is invalid message, this method raises Net::IRC::Message::InvalidMessage
.
# File lib/net/irc/message.rb 10 def self.parse(str) 11 _, prefix, command, *rest = *PATTERN::MESSAGE_PATTERN.match(str) 12 raise InvalidMessage, "Invalid message: #{str.dump}" unless _ 13 14 case 15 when rest[0] && !rest[0].empty? 16 middle, trailer, = *rest 17 when rest[2] && !rest[2].empty? 18 middle, trailer, = *rest[2, 2] 19 when rest[1] 20 params = [] 21 trailer = rest[1] 22 when rest[3] 23 params = [] 24 trailer = rest[3] 25 else 26 params = [] 27 end 28 29 params ||= middle.split(/ /)[1..-1] 30 params << trailer if trailer 31 32 new(prefix, command, params) 33 end
Public Instance Methods
[](n)
click to toggle source
Same as @params.
# File lib/net/irc/message.rb 42 def [](n) 43 @params[n] 44 end
ctcp?()
click to toggle source
If the message is CTCP, return true.
# File lib/net/irc/message.rb 80 def ctcp? 81 #message = @params[1] 82 #message[0] == ?\01 && message[-1] == ?\01 83 /\x01(?>[^\x00\x01\r\n]*)\x01/ === @params[1] 84 end
ctcps()
click to toggle source
# File lib/net/irc/message.rb 86 def ctcps 87 messages = [] 88 @params[1].gsub!(/\x01(?>[^\x00\x01\r\n]*)\x01/) do 89 messages << ctcp_decode($&) 90 "" 91 end 92 messages 93 end
each(&block)
click to toggle source
Iterate params.
# File lib/net/irc/message.rb 47 def each(&block) 48 @params.each(&block) 49 end
inspect()
click to toggle source
# File lib/net/irc/message.rb 95 def inspect 96 "#<%s:0x%x prefix:%s command:%s params:%s>" % [ 97 self.class, 98 self.object_id, 99 @prefix, 100 @command, 101 @params.inspect 102 ] 103 end
to_a()
click to toggle source
Same as params.
# File lib/net/irc/message.rb 75 def to_a 76 @params.dup 77 end
to_s()
click to toggle source
Stringfy message to raw IRC message.
# File lib/net/irc/message.rb 52 def to_s 53 str = "" 54 55 str << ":#{@prefix} " unless @prefix.empty? 56 str << @command 57 58 if @params 59 f = false 60 @params.each do |param| 61 f = !f && (param.empty? || param[0] == ?: || param.include?(" ")) 62 str << " " 63 str << ":" if f 64 str << param 65 end 66 end 67 68 str << "\x0D\x0A" 69 70 str 71 end
Also aliased as: to_str