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
to_str()
Alias for: to_s