Skip to content

Instantly share code, notes, and snippets.

@zephiransas
Created October 6, 2017 05:04
Show Gist options
  • Save zephiransas/5e001c7c0152f6a97da73d30431d5ed0 to your computer and use it in GitHub Desktop.
Save zephiransas/5e001c7c0152f6a97da73d30431d5ed0 to your computer and use it in GitHub Desktop.
Replace Timecop to travel_to
Dir.glob('spec/**/*.rb').each do |file|
puts file
buff = IO.read(file)
[
/Timecop.(freeze|travel)\(Time.new\((?<year>[0-9]*), ?(?<month>[0-9]*), ?(?<day>[0-9]*), ?(?<hour>[0-9]*), ?(?<min>[0-9]*), ?(?<sec>[0-9]*)\)\)/,
/Timecop.(freeze|travel)\(Time.parse\(("|')(?<year>[0-9])*-(?<month>[0-9])*-(?<day>[0-9])* (?<hour>[0-9])*:(?<min>[0-9])*:(?<sec>[0-9])*("|')\)\)/,
/Timecop.(freeze|travel)\(Time.zone.local\((?<year>[0-9]*), ?(?<month>[0-9]*), ?(?<day>[0-9]*), ?(?<hour>[0-9]*), ?(?<min>[0-9]*), ?(?<sec>[0-9]*)\)\)/,
].each do |pattern|
buff.gsub!(pattern, 'travel_to \'\k<year>-\k<month>-\k<day> \k<hour>:\k<min>:\k<sec>\'')
end
[
/Timecop.(freeze|travel)\((?<year>[0-9]*), ?(?<month>[0-9]*), ?(?<day>[0-9]*)\)/,
/Timecop.(freeze|travel)\((Date|DateTime|Time).new\((?<year>[0-9]*), ?(?<month>[0-9]*), ?(?<day>[0-9]*)\)\)/,
/Timecop.(freeze|travel)\(Date.parse\('(?<year>[0-9]*)-(?<month>[0-9]*)-(?<day>[0-9]*)'\)\)/,
/Timecop.(freeze|travel)\(Time.zone.local\('(?<year>[0-9]*), ?(?<month>[0-9]*), ?(?<day>[0-9]*)'\)\)/,
/Timecop.(freeze|travel)\(Time.zone.local\((?<year>[0-9]*), ?(?<month>[0-9]*), ?(?<day>[0-9]*)\)\)/,
].each do |pattern|
buff.gsub!(pattern, 'travel_to \'\k<year>-\k<month>-\k<day>\'')
end
buff.gsub!(/Timecop.(freeze|travel)\((?<value>[a-z_]+)\)/, 'travel_to \k<value>')
buff.gsub!(/Timecop.return/, 'travel_back')
IO.write(file, buff)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment