Sha256: 05695ef94b2db9125482e8ef5d2a750dd86e596b4878286ed38fb10d001b9a89

Contents?: true

Size: 877 Bytes

Versions: 3

Compression:

Stored size: 877 Bytes

Contents

# frozen_string_literal: true

module ChronoTrigger
  module Timeline
    extend ::ActiveSupport::Concern

    class LostInTimeError < StandardError
    end

    class TodayIsTomorrowsYesterday < StandardError
    end

    def chrono_trigger
      ChronoTrigger::Schedule.instance
    end

    def right_now
      now = Time.zone.now
      Time.zone.today + now.hour.hours + now.min.minutes + now.sec.seconds
    end

    def moment_in_the_future(time_with_zone)
      raise(LostInTimeError, "Argument must be of type ActiveSupport::TimeWithZone eg. right_now + 1.second") unless time_with_zone.is_a?(ActiveSupport::TimeWithZone)
      raise(TodayIsTomorrowsYesterday, "Time must be in the future eg. 1.second.from_now") unless time_with_zone.future?
      Time.zone.today + time_with_zone.hour.hours + time_with_zone.min.minutes + time_with_zone.sec.seconds
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
chrono_trigger-1.0.2 lib/chrono_trigger/timeline.rb
chrono_trigger-1.0.1 lib/chrono_trigger/timeline.rb
chrono_trigger-1.0.0 lib/chrono_trigger/timeline.rb