class Miu::Nodes::Sana::Subscriber
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/miu/nodes/sana/subscriber.rb, line 12 def initialize(*args) super @networks = Groonga['networks'] @rooms = Groonga['rooms'] @users = Groonga['users'] @messages = Groonga['messages'] end
Public Instance Methods
on_text(tag, msg)
click to toggle source
# File lib/miu/nodes/sana/subscriber.rb, line 20 def on_text(tag, msg) add_message(msg) Miu::Logger.debug "[ADD] #{msg.inspect}" end
Private Instance Methods
add_message(msg)
click to toggle source
# File lib/miu/nodes/sana/subscriber.rb, line 27 def add_message(msg) network_name = msg.network.name room_name = msg.content.room.name user_name = msg.content.user.name text = msg.content.text meta = MultiJson.encode msg.content.meta time = msg.time network = @networks[network_name] || @networks.add(network_name, :name => network_name) room = @rooms[room_name] || @rooms.add(room_name, :network => network, :name => room_name) user = @users[user_name] || @users.add(user_name, :network => network, :name => user_name) @messages.add({ :network => network, :room => room, :user => user, :text => text, :meta => meta, :time => time }) end