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