class Ruboty::Tryruby::Evaluator

Attributes

http[R]
request[R]

Public Class Methods

new(command) click to toggle source
# File lib/ruboty/tryruby/evaluator.rb, line 8
def initialize(command)
  @http = Net::HTTP.new('tryruby.org', 80)
  @request = Net::HTTP::Put.new('/levels/1/challenges/0')
  @request.set_form_data(cmd: command)
end

Public Instance Methods

evaluate() click to toggle source
# File lib/ruboty/tryruby/evaluator.rb, line 14
def evaluate
  response = http.request(request)
  parse(response)
end

Private Instance Methods

parse(response) click to toggle source
# File lib/ruboty/tryruby/evaluator.rb, line 21
def parse(response)
  code = response.code.to_i

  if (code >= 200) && (code <= 299)
    Result.parse(response.body)
  else
    raise response.value
  end
end