Merge pull request #1582 from mojombo/seconds_agnostic_time
Get some nice Regexp which is agnostic about the seconds.
This commit is contained in:
commit
bd825924b2
|
@ -181,7 +181,7 @@ Then /^the "(.*)" file should not exist$/ do |file|
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^I should see today's time in "(.*)"$/ do |file|
|
Then /^I should see today's time in "(.*)"$/ do |file|
|
||||||
assert_match Regexp.new(Regexp.escape(Time.now.to_s)), file_contents(file)
|
assert_match Regexp.new(seconds_agnostic_time(Time.now)), file_contents(file)
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^I should see today's date in "(.*)"$/ do |file|
|
Then /^I should see today's date in "(.*)"$/ do |file|
|
||||||
|
|
|
@ -46,5 +46,30 @@ def file_contents(path)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def seconds_agnostic_datetime(datetime = Time.now)
|
||||||
|
pieces = datetime.to_s.split(" ")
|
||||||
|
if pieces.size == 6 # Ruby 1.8.7
|
||||||
|
date = pieces[0..2].join(" ")
|
||||||
|
time = seconds_agnostic_time(pieces[3])
|
||||||
|
zone = pieces[4..5].join(" ")
|
||||||
|
else # Ruby 1.9.1 or greater
|
||||||
|
date, time, zone = pieces
|
||||||
|
time = seconds_agnostic_time(time)
|
||||||
|
end
|
||||||
|
[
|
||||||
|
Regexp.escape(date),
|
||||||
|
"#{time}:\\d{2}",
|
||||||
|
Regexp.escape(zone)
|
||||||
|
].join("\\ ")
|
||||||
|
end
|
||||||
|
|
||||||
|
def seconds_agnostic_time(time)
|
||||||
|
if time.is_a? Time
|
||||||
|
time = time.strftime("%H:%M:%S")
|
||||||
|
end
|
||||||
|
hour, minutes, _ = time.split(":")
|
||||||
|
"#{hour}:#{minutes}"
|
||||||
|
end
|
||||||
|
|
||||||
# work around "invalid option: --format" cucumber bug (see #296)
|
# work around "invalid option: --format" cucumber bug (see #296)
|
||||||
Test::Unit.run = true if RUBY_VERSION < '1.9'
|
Test::Unit.run = true if RUBY_VERSION < '1.9'
|
||||||
|
|
Loading…
Reference in New Issue