Advent of Code solutions

support more languages

+22 -2
+22 -2
all.rb
··· 278 278 end 279 279 280 280 def self.implemented? part 281 - File.exist? "p#{part}.pl" 281 + return false unless File.exist? "p#{part}.pl" 282 + first_line = File.open "p#{part}.pl", &:gets 283 + not first_line.include?("perl") 282 284 end 283 285 284 286 def self.run part ··· 288 290 end 289 291 end 290 292 293 + module Perl 294 + def self.available? 295 + which "perl" != nil 296 + end 297 + 298 + def self.implemented? part 299 + return false unless File.exist? "p#{part}.pl" 300 + first_line = File.open "p#{part}.pl", &:gets 301 + first_line.include?("perl") 302 + end 303 + 304 + def self.run part 305 + report "p#{part}.pl" do 306 + `timeout 1m perl p#{part} < input` 307 + end 308 + end 309 + end 310 + 291 311 module Php 292 312 def self.available? 293 313 which "php" != nil ··· 304 324 end 305 325 end 306 326 307 - languages = [Haskell, Rust, Trilogy, C, Cpp, Swift, Python, Ruby, TypeScript, Erlang, Elixir, Gleam, Prolog, Php] 327 + languages = [Haskell, Rust, Trilogy, C, Cpp, Swift, Python, Ruby, TypeScript, Erlang, Elixir, Gleam, Prolog, Php, Perl] 308 328 .filter { |lang| lang.available? } 309 329 310 330 root = Dir.pwd