module StateInspector::Observers::SessionLoggerObserver
Public Class Methods
display()
click to toggle source
# File lib/state_inspector/observers/session_logger_observer.rb, line 30 def display if @file File.open(@file, File::RDONLY) {|f| f.read } else "" end end
file=(f)
click to toggle source
# File lib/state_inspector/observers/session_logger_observer.rb, line 25 def file= f warn("Warning! Log file #{@file} was already set!") if @file @file = f end
purge()
click to toggle source
# File lib/state_inspector/observers/session_logger_observer.rb, line 52 def purge File.delete(@file) if File.exist? @file @file = nil end
update(*values)
click to toggle source
# File lib/state_inspector/observers/session_logger_observer.rb, line 10 def update *values @file ||= File.join( 'log', 'state_inspector', ['session', Time.now.to_i, 'log'].join('.') ) FileUtils.mkdir_p File.dirname(@file) File.open(@file, File::WRONLY | File::APPEND | File::CREAT) do |file| logger = Logger.new(file) logger << values. map(&value_mapper). join(splitter) logger << "\n" end end
values()
click to toggle source
# File lib/state_inspector/observers/session_logger_observer.rb, line 38 def values if @file File.open(@file, File::RDONLY) {|f| f.readlines}.map(&:chomp).map do |line| if line.empty? nil else line.split(splitter).map(&value_mapper) end end.compact else [] end end
Private Class Methods
splitter()
click to toggle source
# File lib/state_inspector/observers/session_logger_observer.rb, line 58 def splitter "\t\t" end
value_mapper()
click to toggle source
# File lib/state_inspector/observers/session_logger_observer.rb, line 62 def value_mapper ->v{ case v when nil "nil" when "nil" nil when Symbol v.inspect when ->val{ val.is_a?(String) && val =~ /\A:/ } v[1..-1].to_sym else v end } end