Class: Jekyll::Plugins::PaginateV3::Utils::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-paginate-v3/utils/logger.rb

Overview

Small logging adapter that keeps pagination internals independent from Jekyll logger globals while still writing through Jekyll.logger.

Usage:

  • call with (message, level) where level is debug|info|warn|error
  • debug messages are emitted only when debug_enabled is true
  • use scoped_log_lambda to override debug emission for one template

Instance Method Summary collapse

Constructor Details

#initialize(debug_enabled:) ⇒ Logger

Returns a new instance of Logger.



16
17
18
# File 'lib/jekyll-paginate-v3/utils/logger.rb', line 16

def initialize(debug_enabled:)
	@debug_enabled = !!debug_enabled
end

Instance Method Details

#call(message, level = 'info', debug_enabled: nil) ⇒ Object

Uniform logging entry point used by model/builder callbacks.



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/jekyll-paginate-v3/utils/logger.rb', line 29

def call(message, level = 'info', debug_enabled: nil)
	case level.to_s
	when 'debug'
		debug(message, debug_enabled: debug_enabled)
	when 'warn'
		warn(message)
	when 'error'
		error(message)
	else
		info(message)
	end
end

#debug(message, debug_enabled: nil) ⇒ Object

Writes a debug message if pagination debug mode is enabled.



43
44
45
46
47
# File 'lib/jekyll-paginate-v3/utils/logger.rb', line 43

def debug(message, debug_enabled: nil)
	return unless debug_enabled?(debug_enabled)

	Jekyll.logger.info('Pagination:', "[debug] #{message}")
end

#error(message) ⇒ Object

Writes an error message.



60
61
62
# File 'lib/jekyll-paginate-v3/utils/logger.rb', line 60

def error(message)
	Jekyll.logger.error('Pagination:', message.to_s)
end

#info(message) ⇒ Object

Writes an informational message.



50
51
52
# File 'lib/jekyll-paginate-v3/utils/logger.rb', line 50

def info(message)
	Jekyll.logger.info('Pagination:', message.to_s)
end

#scoped_log_lambda(debug_enabled:) ⇒ Object

Builds a logger callback that reuses the same info/warn/error routing but applies a local debug override for one pagination scope.



22
23
24
25
26
# File 'lib/jekyll-paginate-v3/utils/logger.rb', line 22

def scoped_log_lambda(debug_enabled:)
	lambda do |message, level = 'info'|
		call(message, level, debug_enabled: debug_enabled)
	end
end

#warn(message) ⇒ Object

Writes a warning message.



55
56
57
# File 'lib/jekyll-paginate-v3/utils/logger.rb', line 55

def warn(message)
	Jekyll.logger.warn('Pagination:', message.to_s)
end