Class: Reviser::Loggers::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/reviser/loggers/logger.rb

Overview

Custom logger of Reviser. This class is a adapter. We used the standard Logger included in Ruby.

Author:

  • Yann Prono

Constant Summary collapse

@@default_mode =
'org'

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ Logger

Creates logger. The extension determines the mode to use (logger mode).

Parameters:

  • filename (String)

    name of logger.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/reviser/loggers/logger.rb', line 46

def initialize filename
				ext = File.extname filename
				@basename = File.basename filename, ext
				ext = ext.delete '.'
				dirname = File.dirname filename

				# Include mode aksed by user (config file)
				begin
self.class.send :prepend, Modes.const_get("#{ext.downcase.capitalize}")
@logger = ::Logger.new File.open(filename, 'w')
				rescue => e
@logger = ::Logger.new File.open(File.join(dirname,(@basename + '.'+@@default_mode)), 'w')
@logger.error("Mode #{ext} doesn\'t exist. Org mode by default.")
self.class.send :include, Modes::Org
				end
				
				@logger.level = ::Logger::DEBUG
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args, &block) ⇒ Object

In case of someone want to use methods of standard Logger ...



71
72
73
# File 'lib/reviser/loggers/logger.rb', line 71

def method_missing(m, *args, &block)
@logger.send m, *args, &block
end

Instance Method Details

#closeObject

Closes the logger



66
67
68
# File 'lib/reviser/loggers/logger.rb', line 66

def close
	@logger.close
end