Sha256: c6191a905ebae4836dea0024d6bc789750fa20e665e38d50e3b147709b19f43b

Contents?: true

Size: 541 Bytes

Versions: 1

Compression:

Stored size: 541 Bytes

Contents

# frozen_string_literal: true

require_relative 'mnc/version'
require 'time'

module MNC
  def self.[](now = Time.now)
    Integer(
      `crontab -l`
      .lines
      .select { |l| l =~ /^(?:[0-9*]+\s+){5}\S+/ }
      .map { |l| l.split.zip %w[%M %H %d %m %w] }
      .map { |a| a[0..4].reject { |b| b[0] == '*' } }
      .map { |a|
        t = a.map { |b| b[0] }.join(' ')
        f = a.map { |b| b[1] }.join(' ')
        now += 60 while (r = (Time.strptime t, f, now)) < Time.now
        r
      }
      .min - Time.now
    )
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mnc-0.1.0 lib/mnc.rb