This class serves two purposes. For one, it simply represents incoming messages and allows for querying various details (who sent the message, what kind of message it is, etc).
At the same time, it allows *responding* to messages, which means sending messages to either users or channels.
@return [Boolean] true if the message is an action (/me) @since 2.0.0
# File lib/cinch/message.rb, line 129 def action? @ctcp_command == "ACTION" end
@return [Boolean] true if this message was sent in a channel
# File lib/cinch/message.rb, line 118 def channel? !@channel.nil? end
@return [Boolean] true if the message is an CTCP message
# File lib/cinch/message.rb, line 123 def ctcp? !!(@params.last =~ /\0001.+\0001/) end
Reply to a CTCP message
@return [void]
# File lib/cinch/message.rb, line 181 def ctcp_reply(answer) return unless ctcp? @user.notice "\0001#{@ctcp_command} #{answer}\0001" end
@return [Boolean] true if the message describes an error
# File lib/cinch/message.rb, line 113 def error? !@error.nil? end
@api private @return [MatchData]
# File lib/cinch/message.rb, line 137 def match(regexp, type) if type == :ctcp @matches[:ctcp][regexp] ||= ctcp_message.match(regexp) elsif type == :action @matches[:action][regexp] ||= action_message.match(regexp) else @matches[:other][regexp] ||= message.to_s.match(regexp) end end
@return [Boolean] true if the message is an numeric reply (as
opposed to a command)
# File lib/cinch/message.rb, line 108 def numeric_reply? !!@command.match(/^\d{3}$/) end
@api private @return [void]
# File lib/cinch/message.rb, line 78 def parse match = @raw.match(/(^:(\S+) )?(\S+)(.*)/) _, @prefix, @command, raw_params = match.captures if @bot.irc.network.ngametv? if @prefix != "ngame" @prefix = "%s!%s@%s" % [@prefix, @prefix, @prefix] end end @params = parse_params(raw_params) @user = parse_user @channel = parse_channel @target = @channel || @user @server = parse_server @error = parse_error @message = parse_message @ctcp_message = parse_ctcp_message @ctcp_command = parse_ctcp_command @ctcp_args = parse_ctcp_args @action_message = parse_action_message end
Like reply, but using {Target#safe_send} instead
@param (see reply) @return (see reply)
# File lib/cinch/message.rb, line 170 def safe_reply(text, prefix = false) text = text.to_s if channel && prefix text = "#{@user.nick}: #{text}" end @target.safe_send(text) end
Generated with the Darkfish Rdoc Generator 2.