Module: MadChatter

Defined in:
lib/mad_chatter.rb,
lib/mad_chatter/user.rb,
lib/mad_chatter/users.rb,
lib/mad_chatter/config.rb,
lib/mad_chatter/server.rb,
lib/mad_chatter/actions.rb,
lib/mad_chatter/channel.rb,
lib/mad_chatter/message.rb,
lib/mad_chatter/version.rb,
lib/mad_chatter/connection.rb,
lib/mad_chatter/extensions.rb,
lib/mad_chatter/actions/dsl.rb,
lib/mad_chatter/actions/base.rb,
lib/mad_chatter/actions/join.rb,
lib/mad_chatter/actions/rename.rb,
lib/mad_chatter/message_history.rb,
lib/mad_chatter/message_listener.rb,
lib/mad_chatter/markdown_renderer.rb,
lib/mad_chatter/servers/juggernaut.rb,
lib/mad_chatter/servers/em_websocket.rb,
lib/mad_chatter/message_listeners/code.rb,
lib/mad_chatter/message_listeners/join.rb,
lib/mad_chatter/message_listeners/nick.rb,
lib/mad_chatter/servers/websocket_rack.rb,
lib/mad_chatter/message_listeners/image.rb,
lib/mad_chatter/message_listeners/markdown.rb

Defined Under Namespace

Modules: Actions, Config, Extensions, MessageListeners, Servers Classes: Channel, Connection, MarkdownRenderer, Message, MessageHistory, MessageListener, Server, User, Users

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Class Method Details

.channelsObject



52
53
54
# File 'lib/mad_chatter.rb', line 52

def channels
  @channels ||= []
end

.channels=(array) ⇒ Object



56
57
58
# File 'lib/mad_chatter.rb', line 56

def channels=(array)
  @channels = array
end

.find_channel_by_id(id) ⇒ Object



60
61
62
63
64
# File 'lib/mad_chatter.rb', line 60

def find_channel_by_id(id)
  channels.each do |channel|
    return channel if channel.id == id
  end
end

.find_channel_by_name(name) ⇒ Object



66
67
68
69
70
# File 'lib/mad_chatter.rb', line 66

def find_channel_by_name(name)
  channels.each do |channel|
    return channel if channel.name == name
  end
end

.find_user_by_token(token) ⇒ Object



46
47
48
49
50
# File 'lib/mad_chatter.rb', line 46

def find_user_by_token(token)
  users.each do |user|
    return user if user.token == token
  end
end

.message_listenersObject



72
73
74
# File 'lib/mad_chatter.rb', line 72

def message_listeners
  @message_listeners ||= []
end

.message_listeners=(array) ⇒ Object



76
77
78
# File 'lib/mad_chatter.rb', line 76

def message_listeners=(array)
  @message_listeners = array
end

.message_received(json) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/mad_chatter.rb', line 86

def message_received(json)
  msg = JSON.parse(json)
  
  if msg['token'].nil?
    return # Token is required to send messages
  end
  
  message = MadChatter::Message.new('message', msg['message'], msg['token'], msg['channel'])
  
  begin
    message_listeners.each do |listener|
      listener.handle(message)
    end
    send_message(message)
  rescue RuntimeError
    # dont need to do anything, just prevent any errors from stopping the server
  end
end

.send_message(message) ⇒ Object



105
106
107
108
109
# File 'lib/mad_chatter.rb', line 105

def send_message(message)
  channels.each do |channel|
    channel.send_message(message) if channel.id == message.channel
  end
end

.startObject



80
81
82
83
84
# File 'lib/mad_chatter.rb', line 80

def start
  config = MadChatter::Config.init
  server = MadChatter::Server.new(config)
  server.start
end

.usersObject



38
39
40
# File 'lib/mad_chatter.rb', line 38

def users
  @users ||= []
end

.users=(array) ⇒ Object



42
43
44
# File 'lib/mad_chatter.rb', line 42

def users=(array)
  @users = array
end