Class: MakePDF::Logger

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

Constant Summary collapse

LEVELS =
[ :debug, :info, :warn, :error ]

Instance Method Summary collapse

Constructor Details

#initialize(logger: nil, level: :debug, verbose: false) ⇒ Logger

Returns a new instance of Logger.



21
22
23
24
25
26
# File 'lib/make_pdf.rb', line 21

def initialize(logger: nil, level: :debug, verbose: false)
  @logger = logger
  @min_level = LEVELS.index(level) || 2
  @verbose = verbose
  write(:debug, "logging at least level #{LEVELS[@min_level].to_s} with #{logger}")
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, **options) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/make_pdf.rb', line 45

def method_missing(method_name, *args, **options)
  if @logger.nil? and LEVELS.include?(method_name)
    return write(method_name, *args)
  end

  if accepts?(method_name)
    @logger.send(LEVELS[[LEVELS.index(method_name), self.level].max], LOG_NAME, *args, **options)
  else
    super
  end
end

Instance Method Details

#accepts?(method_name) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/make_pdf.rb', line 57

def accepts?(method_name)
  LEVELS.include?(method_name) and @logger.respond_to?(method_name, false) 
end

#levelObject



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

def level
  @min_level || 0
end

#respond_to_missing?(method_name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/make_pdf.rb', line 61

def respond_to_missing?(method_name, include_private = false)
  accepts?(method_name) || super
end

#verbose(*args) ⇒ Object



39
40
41
42
43
# File 'lib/make_pdf.rb', line 39

def verbose(*args)
  if (@verbose)
    @logger.send(LEVELS[self.level], LOG_NAME, *args)
  end
end

#write(level, *args) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/make_pdf.rb', line 28

def write(level, *args)
  print("#{level.to_s} : ", *args.map do |msg|
    if (msg.size > 80)
      msg[0..79] + ""
    else
      msg
    end
  end.join("\n"), "\n")
  return
end