class Logging::Layouts::EvenOddPattern::SprintfBag
Public Class Methods
new(color_scheme,color_alias_table, directive_table)
click to toggle source
# File lib/logging/layouts/odd_even_pattern.rb, line 49 def initialize(color_scheme,color_alias_table, directive_table) @format_string='"' @format_string_bright='"' @args=[] @name_map={} @color_scheme=color_scheme @color_alias_table=color_alias_table @directive_table = directive_table end
Public Instance Methods
add(str)
click to toggle source
# File lib/logging/layouts/odd_even_pattern.rb, line 79 def add(str) @format_string << str @format_string_bright << str self end
Also aliased as: <<
add_arg(arg, modify=false)
click to toggle source
# File lib/logging/layouts/odd_even_pattern.rb, line 86 def add_arg(arg, modify=false) if modify @args.last << arg else @args << arg end self end
add_colored(string,pattern_name,arg=nil)
click to toggle source
@param [String] pattern_name like 'message' or 'time' @param [String] string the string that needs coloring
# File lib/logging/layouts/odd_even_pattern.rb, line 62 def add_colored(string,pattern_name,arg=nil) if @color_scheme and !@color_scheme.lines? @format_string << @color_scheme.color(string,@color_alias_table[pattern_name]) @format_string_bright << @color_scheme.color(string,"#{@color_alias_table[pattern_name]}_bright") else self << string end directive=@directive_table[pattern_name] if @directive_table[pattern_name].respond_to?(:call) @args << directive.call(arg) else @args << directive.dup end self end
add_variable(value,arg="@var")
click to toggle source
# File lib/logging/layouts/odd_even_pattern.rb, line 95 def add_variable(value,arg="@var") map_name="@map_name_#{@name_map.size}" @name_map[map_name]=value @args << arg.gsub("@var",map_name) self end
set_variables(obj)
click to toggle source
# File lib/logging/layouts/odd_even_pattern.rb, line 102 def set_variables(obj) @name_map.each_pair do |name, value| obj.instance_variable_set(name.to_sym, value) end end
to_sprintf(bright=false)
click to toggle source
# File lib/logging/layouts/odd_even_pattern.rb, line 108 def to_sprintf(bright=false) format = bright ? @format_string_bright : @format_string sprintf = "sprintf(" sprintf << format + '"' sprintf << ', ' + @args.join(', ') unless @args.empty? sprintf << ")" if @color_scheme and @color_scheme.lines? #generate colors at runtime sprintf = "color_scheme.color(#{sprintf}, event.even? ? ::Logging::LNAMES[event.level] : ::Logging::LNAMES[event.level].to_s + '_bright' )" end sprintf end