Exception: Yt::Errors::RequestError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/yt/errors/request_error.rb

Direct Known Subclasses

Forbidden, MissingAuth, NoItems, ServerError, Unauthorized

Instance Method Summary collapse

Constructor Details

#initialize(msg = {}) ⇒ RequestError


6
7
8
9
# File 'lib/yt/errors/request_error.rb', line 6

def initialize(msg = {})
  @msg = msg
  super msg
end

Instance Method Details

#descriptionObject


22
23
24
# File 'lib/yt/errors/request_error.rb', line 22

def description
  response_body.fetch 'error_description', {}
end

#explanationObject


33
34
35
# File 'lib/yt/errors/request_error.rb', line 33

def explanation
  'A request to YouTube API failed'
end

#kindObject


18
19
20
# File 'lib/yt/errors/request_error.rb', line 18

def kind
  response_body.fetch 'error', {}
end

#messageObject


11
12
13
14
15
16
# File 'lib/yt/errors/request_error.rb', line 11

def message
  <<-MSG.gsub(/^ {8}/, '')
  #{explanation}:
  #{Yt.configuration.debugging? ? details : no_details }
  MSG
end

#reasonsObject


26
27
28
29
30
31
# File 'lib/yt/errors/request_error.rb', line 26

def reasons
  case kind
    when Hash then kind.fetch('errors', []).map{|e| e['reason']}
    else kind
  end
end

#response_bodyObject


37
38
39
# File 'lib/yt/errors/request_error.rb', line 37

def response_body
  json['response_body'].is_a?(Hash) ? json['response_body'] : {}
end