Class: MovieOrganizer::Logger

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/movie_organizer/logger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(provider = default_logger) ⇒ Logger

Returns a new instance of Logger.



10
11
12
# File 'lib/movie_organizer/logger.rb', line 10

def initialize(provider = default_logger)
  @log_provider = provider
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

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



21
22
23
24
25
26
27
# File 'lib/movie_organizer/logger.rb', line 21

def method_missing(meth, *args, &block)
  if log_provider.respond_to?(meth)
    log_provider.send(meth, *args, &block)
  else
    super
  end
end

Instance Attribute Details

#log_providerObject

Returns the value of attribute log_provider.



8
9
10
# File 'lib/movie_organizer/logger.rb', line 8

def log_provider
  @log_provider
end

Instance Method Details

#log_exception(e, data = {}) ⇒ Object



14
15
16
17
18
19
# File 'lib/movie_organizer/logger.rb', line 14

def log_exception(e, data = {})
  msg = "EXCEPTION : #{e.class.name} : #{e.message}"
  msg += "\n data : #{data.inspect}" if data && !data.empty?
  msg += "\n  #{e.backtrace[0, 6].join("\n  ")}"
  log_provider.error(msg)
end

#respond_to?(meth, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
35
# File 'lib/movie_organizer/logger.rb', line 29

def respond_to?(meth, include_private = false)
  if log_provider.respond_to?(meth)
    true
  else
    super
  end
end