Class: Logger::Joint

Inherits:
Object
  • Object
show all
Includes:
PlusMethod
Defined in:
lib/logger/joint/version.rb,
lib/logger/joint.rb

Defined Under Namespace

Modules: PlusMethod

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Instance Method Summary collapse

Methods included from PlusMethod

#joint

Constructor Details

#initialize(primary_logger, secondary_logger) ⇒ Joint

Returns a new instance of Joint.



25
26
27
28
29
30
# File 'lib/logger/joint.rb', line 25

def initialize(primary_logger, secondary_logger)
  self.class.respond_as_logger? primary_logger or raise TypeError, 'primary is not a logger.'
  self.class.respond_as_logger? secondary_logger or raise TypeError, 'secondary is not a logger.'
  @primary = primary_logger
  @secondary = secondary_logger
end

Class Method Details

.respond_as_logger?(object) ⇒ Boolean

methods common to Logger and Syslog::Logger are need for.

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/logger/joint.rb', line 8

def self.respond_as_logger?(object)
  [ :level,
    :add,
    :debug,
    :info,
    :warn,
    :error,
    :fatal,
    :unknown,
    :debug?,
    :info?,
    :warn?,
    :error?,
    :fatal?
  ].all?{|name| object.respond_to? name }
end

Instance Method Details

#add(*args, &block) ⇒ Object



43
44
45
# File 'lib/logger/joint.rb', line 43

def add(*args, &block)
  apply_method(:add, *args, &block)
end

#debug(*args, &block) ⇒ Object



47
48
49
# File 'lib/logger/joint.rb', line 47

def debug(*args, &block)
  apply_method(:debug, *args, &block)
end

#debug?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/logger/joint.rb', line 76

def debug?
  apply_level_predicate(:debug?)
end

#error(*args, &block) ⇒ Object



59
60
61
# File 'lib/logger/joint.rb', line 59

def error(*args, &block)
  apply_method(:error, *args, &block)
end

#error?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/logger/joint.rb', line 88

def error?
  apply_level_predicate(:error?)
end

#fatal(*args, &block) ⇒ Object



63
64
65
# File 'lib/logger/joint.rb', line 63

def fatal(*args, &block)
  apply_method(:fatal, *args, &block)
end

#fatal?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/logger/joint.rb', line 92

def fatal?
  apply_level_predicate(:fatal?)
end

#info(*args, &block) ⇒ Object



51
52
53
# File 'lib/logger/joint.rb', line 51

def info(*args, &block)
  apply_method(:info, *args, &block)
end

#info?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/logger/joint.rb', line 80

def info?
  apply_level_predicate(:info?)
end

#levelObject



32
33
34
# File 'lib/logger/joint.rb', line 32

def level
  [ @primary, @secondary ].map(&:level).min
end

#unknown(*args, &block) ⇒ Object



67
68
69
# File 'lib/logger/joint.rb', line 67

def unknown(*args, &block)
  apply_method(:unknown, *args, &block)
end

#warn(*args, &block) ⇒ Object



55
56
57
# File 'lib/logger/joint.rb', line 55

def warn(*args, &block)
  apply_method(:warn, *args, &block)
end

#warn?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/logger/joint.rb', line 84

def warn?
  apply_level_predicate(:warn?)
end