Sha256: b91e4c9bd7c72cd3dab124a9dd4df7d58b653c604675d2f4357eb19d0be7baac

Contents?: true

Size: 1.45 KB

Versions: 3

Compression:

Stored size: 1.45 KB

Contents

module MadChatter
  module MessageListeners
    class ChannelCommands
      
      include MadChatter::Actions
      
      def handle(message)
        @message = message
        case @message.text
        when '/join'
          join_channel
          stop_message_handling
        when %r{^/channel create}
          create_channel
          stop_message_handling
        when %r{^/channel rename}
          rename_channel
          stop_message_handling
        end
      end
      
      def join_channel
        user = MadChatter.find_user_by_token(@message.token)
        
        unless user && @message.channel
          stop_message_handling # user should already exist, and channel id is required
        end
        
        channel = MadChatter.find_channel_by_id(@message.channel)
        
        unless channel
          stop_message_handling # you cant join a channel that doesnt exist
        end
        
        channel.add_user(user)
      end
      
      def create_channel
        channel_name = %r{^/channel create (.+)}.match(@message.text).captures[0]
        MadChatter.channels << MadChatter::Channel.new(channel_name)
        MadChatter.send_channels_list
      end
      
      def rename_channel
        channel_name = %r{^/channel rename (.+)}.match(@message.text).captures[0]
        channel = MadChatter.find_channel_by_id(@message.channel)
        channel.name = channel_name
        MadChatter.send_channels_list
      end
      
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mad_chatter-0.3.4 lib/mad_chatter/message_listeners/channel_commands.rb
mad_chatter-0.3.3 lib/mad_chatter/message_listeners/channel_commands.rb
mad_chatter-0.3.2 lib/mad_chatter/message_listeners/channel_commands.rb