Это не большая проблема, на самом деле, это просто из любопытства.
Для программы, над которой я работаю, я записываю информацию в файлы в определенное время (в настоящее время один раз / день, может меняться), но это делается таким образом, что важно время для каждой записанной части информации. Таким образом, каждый раз, когда я хочу взять образцы и добавить информацию в файл, сначала я добавляю следующее:
file_out.write Time.now
Как простой способ запомнить точно, когда была сделана каждая запись.
Теперь вот что мне интересно: есть ли способ проверить, является ли строка, полученная из файла (например, "cur_line = file_in.gets"), отметкой времени?
Причина, по которой это не является проблемой, заключается в том, что мой текущий метод - это регулярное выражение:
if cur_line =~(/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/)
И, кажется, отлично работает для моих нужд.
(Из-за характера проекта и форматирования того, что я пишу, я знаю, что в файле не будет других строк, содержащих текст формата «{Day} {Month}», поэтому я перестаю там разбираться. Просто день или месяц будут недостаточными и приведут к ложным срабатываниям).
Существуют ли другие, возможно, более симпатичные способы проверки временных меток? Я не буду обязательно использовать что-то другое (особенно, если вы скажете: «Вы можете сделать X, но это приведет к значительному снижению производительности» (не то, чтобы сравнения в этом проекте были серьезной проблемой для производительности. Я предполагаю, что разница вероятно, будет незначительным)).
Это просто что-то, что показалось мне интересным, и я догадался, что в Ruby могут быть классные способы. :)