Class: Exercism::CLI::MonitoredRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/cli/monitored_request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ MonitoredRequest

Returns a new instance of MonitoredRequest.



6
7
8
# File 'lib/cli/monitored_request.rb', line 6

def initialize(api)
  @api = api
end

Instance Attribute Details

#apiObject (readonly)

Returns the value of attribute api.



4
5
6
# File 'lib/cli/monitored_request.rb', line 4

def api
  @api
end

Instance Method Details

#request(action, *args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/cli/monitored_request.rb', line 10

def request(action, *args)
  begin
    response = api.send(action, *args)
    response_body = JSON.parse(response.body)

    abort response_body["error"] if response_body["error"]

    yield response, response_body
  rescue Exception => e
    abort "There was an issue with your request.\n#{e}"
  end
end