class Hook
Attributes
bot[R]
current_room[RW]
Public Class Methods
new(bot, server: nil)
click to toggle source
# File lib/chatx/hooks.rb, line 70 def initialize(bot, server: nil) @bot = bot @default_server = server || @bot.default_server end
Public Instance Methods
command(prefix, &block)
click to toggle source
# File lib/chatx/hooks.rb, line 91 def command(prefix, &block) on "message" do |e| msg = HTMLEntities.new.decode(e.content) if msg.downcase == prefix || msg.downcase.start_with?("#{prefix} ") args = msg.scan(%r{\"(.*)\"|\'(.*)\'|([^\s]*)}).flatten.reject { |a| a.to_s.empty? }[1..-1] block.call(*args) end end end
on(event, server: @default_server, &block)
click to toggle source
# File lib/chatx/hooks.rb, line 85 def on(event, server: @default_server, &block) @bot.hooks[server] ||= {} @bot.hooks[server][EVENT_SHORTHAND.index(event)] ||= [] @bot.hooks[server][EVENT_SHORTHAND.index(event)].push ['*', block] end
room(room_id, autojoin: true, server: @default_server, &block)
click to toggle source
# File lib/chatx/hooks.rb, line 79 def room(room_id, autojoin: true, server: @default_server, &block) room = Room.new(room_id, self, server: server) @bot.join_room(room_id.to_i, server: server) unless !autojoin || @bot.rooms.keys.include?(room_id) room.instance_eval(&block) end
say(message, room_id = @current_room)
click to toggle source
# File lib/chatx/hooks.rb, line 75 def say(message, room_id = @current_room) @bot.say(message, room_id) end