1
1
require 'erb'
2
+ require 'yard/doctest/rake'
2
3
3
4
task :default => :test
4
5
5
- def what_day ( arg = nil )
6
- if arg
7
- arg
8
- else
9
- if day = ENV . fetch ( "DAY" , nil )
10
- day
11
- else
12
- Time . now . day
13
- end
14
- end . to_s . rjust ( 2 , '0' )
6
+ def what_day
7
+ ENV
8
+ . fetch ( "DAY" , Time . now . day )
9
+ . to_i
10
+ . to_s
11
+ . rjust ( 2 , '0' )
15
12
end
16
13
17
- task :run , [ :day ] do |t , args |
18
- day = what_day ( args [ :day ] )
14
+ task :run do |t , args |
15
+ day = what_day
19
16
puts "OK. Let's run Day#{ day } !\n \n "
20
17
require "./day#{ day } "
21
18
Object . const_get ( "Day#{ day } " ) . go
22
19
end
23
20
24
- task :test , [ :day ] do |t , args |
25
- day = what_day ( args [ :day ] )
21
+ desc "Run the tests my way; set env var DAY to run a day other than today"
22
+ task :test do |t , args |
23
+ day = what_day
26
24
puts "Wooo! Let's test Day#{ day } !\n \n "
27
25
28
26
File . open ( './doctest_helper.rb' , 'w' ) do |file |
@@ -35,7 +33,12 @@ task :test, [:day] do |t, args|
35
33
TEST_HELPER
36
34
end
37
35
38
- abort unless system ( "yard doctest -v ./day#{ day } .rb" )
36
+ Rake ::Task [ "yard:doctest" ] . invoke
37
+ end
38
+
39
+ YARD ::Doctest ::RakeTask . new do |task |
40
+ task . doctest_opts = %w[ -v ] << ENV . fetch ( "TESTOPTS" , "" ) . split ( " " )
41
+ task . pattern = "./day#{ what_day } .rb"
39
42
end
40
43
41
44
task :new do
@@ -57,6 +60,6 @@ rule ( /^day\d\d$/ ) do |task|
57
60
input_file = "../inputs/#{ task . name } -input.txt"
58
61
system ( "pbpaste > #{ input_file } " )
59
62
puts "📝 wrote the clipboard to #{ input_file } , hope it was right:"
60
- system ( "cat #{ input_file } " )
63
+ system ( "head -n 5 #{ input_file } " )
61
64
end
62
65
end
0 commit comments