def message_format=( format )
@message_format = format
return unless format
@needs_caller_info = false
format_string = ""
format_parameters = []
@message_format_tokens = []
format.scan( SPECIFIER_PATTERN ) do |v|
format_string << v[0] if v[0].length > 0
opts = SPECIFIER_OPTIONS[ v[2] ]
format_string << "%#{v[1]}#{opts[:type]}"
format_parameters << opts[:value]
@needs_caller_info = true if v[2] =~ /[FlLM]/
end
format_string << $' if $'.length > 0
format_string << "\n"
definition =
"proc { |opts| #{format_string.inspect} " +
"% [ #{format_parameters.join(',')} ] }"
@message_formatter = eval( definition )
end