class GreenLog::Entry::Builder
A builder for entries.
Attributes
data[R]
exception[R]
message[R]
severity[R]
Public Class Methods
new(severity)
click to toggle source
# File lib/green_log/entry.rb, line 40 def initialize(severity) @severity = severity end
Public Instance Methods
build(*args, &block)
click to toggle source
# File lib/green_log/entry.rb, line 67 def build(*args, &block) args.each(&method(:handle_arg)) if block if block.arity.zero? Array(block.call).each(&method(:handle_arg)) else block.call(self) end end Entry.with(severity: severity, message: message, data: data, exception: exception) end
data=(arg)
click to toggle source
# File lib/green_log/entry.rb, line 55 def data=(arg) raise ArgumentError, ":data already specified" if defined?(@data) @data = arg end
exception=(arg)
click to toggle source
# File lib/green_log/entry.rb, line 61 def exception=(arg) raise ArgumentError, ":exception already specified" if defined?(@exception) @exception = arg end
message=(arg)
click to toggle source
# File lib/green_log/entry.rb, line 49 def message=(arg) raise ArgumentError, ":message already specified" if defined?(@message) @message = arg end
Private Instance Methods
arg_type(arg)
click to toggle source
# File lib/green_log/entry.rb, line 85 def arg_type(arg) case arg when String :message when Hash :data when Exception :exception else raise ArgumentError, "un-loggable argument: #{arg.inspect}" end end
handle_arg(arg)
click to toggle source
# File lib/green_log/entry.rb, line 81 def handle_arg(arg) public_send("#{arg_type(arg)}=", arg) end