class ChallengeResult

Constants

PASS_CHAR
STATUSES

Attributes

result[R]

Public Class Methods

new(challenge) click to toggle source
# File lib/unixoid/challenge_result.rb, line 7
def initialize(challenge)
  @result = parse(challenge)
end

Public Instance Methods

failures() click to toggle source
# File lib/unixoid/challenge_result.rb, line 17
def failures
  failing_test_numbers.compact
end
status() click to toggle source
# File lib/unixoid/challenge_result.rb, line 11
def status 
  STATUSES.find do |status|
    send("#{status}?")
  end
end

Private Instance Methods

attempted?() click to toggle source
# File lib/unixoid/challenge_result.rb, line 29
def attempted?
  passes.any?
end
complete?() click to toggle source
# File lib/unixoid/challenge_result.rb, line 25
def complete?
  passes.length == total_tests
end
failing_test_numbers() click to toggle source
# File lib/unixoid/challenge_result.rb, line 53
def failing_test_numbers
  @result.map.with_index do |test, index|
    next if passed(test)
    index + 1
  end
end
parse(challenge) click to toggle source
# File lib/unixoid/challenge_result.rb, line 37
def parse(challenge)
  challenge.chomp("\n").chars
end
passed(test) click to toggle source
# File lib/unixoid/challenge_result.rb, line 45
def passed(test)
  test == PASS_CHAR
end
passes() click to toggle source
# File lib/unixoid/challenge_result.rb, line 41
def passes
  result.select { |test| passed(test) } 
end
total_tests() click to toggle source
# File lib/unixoid/challenge_result.rb, line 49
def total_tests
  result.length
end
unattempted?() click to toggle source
# File lib/unixoid/challenge_result.rb, line 33
def unattempted?
  passes.empty?
end