Как я могу извлечь номер даты из примера сценария и использовать его, чтобы переместить мою дату x дней в adv, а затем преобразовать ее в STRFTIME? - PullRequest
0 голосов
/ 26 марта 2019

У меня проблемы с пониманием того, как убрать число «2» из «2 дня с этого момента», а затем использовать его, чтобы увеличить мою дату на два дня.что-то вроде date = (Date.today + 2) .strftime ('% a% -e'), то есть на два дня вперед.

Мои «путы» просто так, чтобы я мог видеть, выводится ли правильная дата.В этой ситуации у меня возникают проблемы с третьим случаем.

Как видите, мне нужно дословно указать дату, равную "Thur 26 Tasks"

And(/^I can see the correct task lists details for (.*)$/) do |date|

  sleep 1
  case
  when date == ("today")
    date = Date.today.strftime('%a %-e') + " Tasks"
    puts date
  when date == ("tomorrow")
    date = (Date.today + 1).strftime('%a %-e') + " Tasks"
    puts date
  when date.downcase.include?("days from now")
    date = ((Date.today + [/\d*/]) + " Tasks")
    puts date
  end
  TasksPage.todays_tasks_title.click unless exists {$driver.text(date)}

end

Ответы [ 2 ]

1 голос
/ 26 марта 2019

как идея для вас

date = "3 days from now"

date = "#{(Date.today + date.match(/\A\d+(?!days from now\z)/)[0].to_i).strftime('%a %-e')} Tasks" if date.match?(/\A\d+ days from now\z/)
# => "Fri 29 Tasks"

date.match?(/\A\d+ days from now\z/) возвращает true или false

date.match(/\A\d+(?!days from now\z)/)[0] возвращает подстроку с количеством дней ("3").

Отрицательный взгляд (?!...) используется здесь.

0 голосов
/ 26 марта 2019
require 'date'

def doit(str)
  n = case str
  when /\btoday\b/
    0
  when /\btomorrow\b/
    1
  when /\bdays from now\b/
    str[/\d+/].to_i
  else
    nil
  end
  n.nil? ? nil : (Date.today+n).strftime('%a %-e Tasks')
end

doit "today"                 #=> "Tue 26 Tasks" 
doit "No rain today?"        #=> "Tue 26 Tasks" 
doit "todayornottoday"       #=> nil 
doit "tomorrow"              #=> "Wed 27 Tasks" 
doit "2 days from now"       #=> "Thu 28 Tasks" 
doit "1 Monday from now"     #=> nil 
...