class Aocli::Commands::CreateNewDay

Public Instance Methods

execute() click to toggle source
# File lib/aocli/commands/create_new_day.rb, line 7
def execute
  base_dir = create_directories
  create_files(base_dir)
end

Private Instance Methods

create_day_dir(base_dir, day) click to toggle source
# File lib/aocli/commands/create_new_day.rb, line 39
def create_day_dir(base_dir, day)
  day_dir = File.join(base_dir, day.to_s)
  return day_dir if File.directory?(day_dir)

  Dir.mkdir(day_dir)
  day_dir
end
create_directories() click to toggle source
# File lib/aocli/commands/create_new_day.rb, line 14
def create_directories
  base_dir = Dir.pwd
  year_dir = create_year_dir(base_dir, year)
  create_day_dir(year_dir, day)
end
create_files(base_dir) click to toggle source
# File lib/aocli/commands/create_new_day.rb, line 20
def create_files(base_dir)
  problem_html = Aocli::Adapter.fetch_problem_html(year: year, day: day)
  markdown = Kramdown::Document.new(problem_html, html_to_native: true).to_kramdown

  File.write(File.join(base_dir, "problem.md"), markdown)
  File.write(File.join(base_dir, "part_one.rb"), solution_content(base_dir))
  File.write(File.join(base_dir, "part_two.rb"), solution_content(base_dir))
  File.write(File.join(base_dir, "inputs.txt"), Aocli::Adapter.fetch_input(year: year, day: day))
  File.write(File.join(base_dir, "test_inputs.txt"), "")
end
create_year_dir(base_dir, year) click to toggle source
# File lib/aocli/commands/create_new_day.rb, line 31
def create_year_dir(base_dir, year)
  year_dir = File.join(base_dir, year.to_s)
  return year_dir if File.directory?(year_dir)

  Dir.mkdir(year_dir)
  year_dir
end