Class: Puggernaut::Server::Channel
- Inherits:
-
EM::Channel
- Object
- EM::Channel
- Puggernaut::Server::Channel
- Includes:
- Logger
- Defined in:
- lib/puggernaut/server/channel.rb
Class Attribute Summary collapse
-
.channels ⇒ Object
Returns the value of attribute channels.
Instance Attribute Summary collapse
-
#channels ⇒ Object
readonly
Returns the value of attribute channels.
Class Method Summary collapse
- .all_messages_after(channel, identifier) ⇒ Object
- .create(channels) ⇒ Object
- .say(messages) ⇒ Object
Instance Method Summary collapse
-
#initialize(channels) ⇒ Channel
constructor
A new instance of Channel.
Methods included from Logger
Constructor Details
#initialize(channels) ⇒ Channel
Returns a new instance of Channel.
9 10 11 12 |
# File 'lib/puggernaut/server/channel.rb', line 9 def initialize(channels) @channels = channels super() end |
Class Attribute Details
.channels ⇒ Object
Returns the value of attribute channels.
16 17 18 |
# File 'lib/puggernaut/server/channel.rb', line 16 def channels @channels end |
Instance Attribute Details
#channels ⇒ Object (readonly)
Returns the value of attribute channels.
7 8 9 |
# File 'lib/puggernaut/server/channel.rb', line 7 def channels @channels end |
Class Method Details
.all_messages_after(channel, identifier) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/puggernaut/server/channel.rb', line 25 def (channel, identifier) if @messages && @messages[channel] found = false ( @messages[channel].select { |(id, )| found = true if id == identifier found }[1..-1] || [] ).collect { || "#{channel}|#{.join '|'}" } else [] end end |
.create(channels) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/puggernaut/server/channel.rb', line 18 def create(channels) channel = self.new(channels) @channels ||= [] @channels << channel channel end |
.say(messages) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/puggernaut/server/channel.rb', line 42 def say() @messages ||= {} = .inject({}) do |hash, (channel_name, )| = .collect do || [ rand.to_s[2..-1], ] end @messages[channel_name] ||= [] @messages[channel_name] += if @messages[channel_name].length > 100 @messages[channel_name] = @messages[channel_name][-100..-1] end hash[channel_name] = hash end @channels.each do |channel| push = channel.channels.collect do |channel_name| if [channel_name] [channel_name].collect { || "#{channel_name}|#{.join('|')}" }.join("\n") end end push = push.compact unless push.empty? channel.push push.join("\n") end end end |