Sha256: df5332d0d894abe7a380cea9760ebc3226c7bfa4eed456edebe5641351ad5da9

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'chronic'
require 'timecop'

#
# TemporalHelpers module group all the needed methods to use Timecop with
# Cucumber
#
# @author [zedtux]
#
module TemporalHelpers
  # Travels to +time+ and lets the clock keep running.
  #
  # If a block is given, executes the block at that
  # time then returns to the present.
  def travel_to(time, &block)
    Timecop.travel parse_time(time), &block
  end

  # Travels to and freezes the clock at +time+.
  #
  # If a block is given, executes the block at that
  # time then returns to the present.
  def freeze_time_at(time, &block)
    Timecop.freeze parse_time(time), &block
  end

  private

  def parse_time(time)
    Chronic.parse(time) || Time.parse(time)
  end
end

World(TemporalHelpers)

Given(/^it is currently (.+)$/) do |time|
  travel_to time
end

Given(/^time is frozen at (.+)$/) do |time|
  freeze_time_at time
end

Given(/^(?:I|we) jump in our Delorean and return to the present$/) do
  Timecop.return
end

Before do
  # Ensure Chronic is using the same time zone
  Chronic.time_class = Time.zone if defined?(Rails)
end

After do
  Timecop.return
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cucumber-timecop-0.0.6 lib/cucumber/timecop.rb