class Aoc::Challenge
Public Class Methods
new(day, year)
click to toggle source
# File lib/aoc/challenge.rb, line 6 def initialize(day, year) @day = day @year = year end
Public Instance Methods
input()
click to toggle source
# File lib/aoc/challenge.rb, line 31 def input session = Aoc::Session.get_session @input ||= Nokogiri::HTML(open("#{url}/input", "Cookie" => "session=#{session}")).text end
part1()
click to toggle source
# File lib/aoc/challenge.rb, line 15 def part1 @part1 ||= content.css('article.day-desc').first.text end
part2()
click to toggle source
# File lib/aoc/challenge.rb, line 19 def part2 if part2? @part2 ||= content.css('article.day-desc').last.text else "Part 2 not unlocked yet" end end
part2?()
click to toggle source
# File lib/aoc/challenge.rb, line 27 def part2? content.css('article.day-desc').count > 1 end
url()
click to toggle source
# File lib/aoc/challenge.rb, line 11 def url "https://adventofcode.com/#{@year}/day/#{@day}" end
Private Instance Methods
content()
click to toggle source
# File lib/aoc/challenge.rb, line 38 def content session = Aoc::Session.get_session @content ||= Nokogiri::HTML(open(url, "Cookie" => "session=#{session}")) end