def parse_caller_string caller_string
      sections = caller_string.split(' ')
      parts = sections.first.split(':')
      file_name   = parts.shift
      line_number = parts.shift
      class_name  = class_name_from_caller_string caller_string
      #puts ">> class_name: #{class_name} file_name: #{file_name} line_number: #{line_number}"
      [class_name, file_name, line_number]
    end
def parse_caller_string caller_string
      sections = caller_string.split(' ')
      parts = sections.first.split(':')
      file_name   = parts.shift
      line_number = parts.shift
      class_name  = class_name_from_caller_string caller_string
      #puts ">> class_name: #{class_name} file_name: #{file_name} line_number: #{line_number}"
      [class_name, file_name, line_number]
    end
NOTE: Don't forget that this string *sometimes* contains a colon on Windows...