Class: OLogger::Buffer

Inherits:
Object
  • Object
show all
Defined in:
lib/ologger/buffer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBuffer

Returns a new instance of Buffer.



5
6
7
# File 'lib/ologger/buffer.rb', line 5

def initialize
  self.messages = []
end

Instance Attribute Details

#messagesObject

Returns the value of attribute messages.



3
4
5
# File 'lib/ologger/buffer.rb', line 3

def messages
  @messages
end

Instance Method Details

#add(options = {}) ⇒ Object



13
14
15
# File 'lib/ologger/buffer.rb', line 13

def add(options = {})
  messages << options
end

#flushObject



9
10
11
# File 'lib/ologger/buffer.rb', line 9

def flush
  self.messages = []
end

#grouped_messagesObject



17
18
19
# File 'lib/ologger/buffer.rb', line 17

def grouped_messages
  messages.group_by { |b| "#{b[:logger_module]}.#{b[:logger_id]}"}
end

#writeObject



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ologger/buffer.rb', line 21

def write
  grouped_messages.each do |k, game_module_messages|
    logger_module = game_module_messages.first[:logger_module] || 'unknown'
    logger_id = game_module_messages.first[:logger_id] || 'unknown'
    OLogger.create_module(logger_module)        
    (OLogger.path + logger_module + (logger_id.to_s + '.log')).open('a+') do |file|
      game_module_messages.each do |message|
        file.puts "#{Time.now.strftime('%d.%m.%Y %H:%M:%S')}: #{message[:message]}"
        message[:objs].each { |obj| PP.pp(obj, file) } if message[:objs]
      end
    end        
  end 
end