class Yt::Errors::RequestError

Public Class Methods

new(msg = {}) click to toggle source
Calls superclass method
# File lib/yt/errors/request_error.rb, line 6
def initialize(msg = {})
  @msg = msg
  super msg
end

Public Instance Methods

description() click to toggle source
# File lib/yt/errors/request_error.rb, line 22
def description
  response_body.fetch 'error_description', {}
end
explanation() click to toggle source
# File lib/yt/errors/request_error.rb, line 33
def explanation
  'A request to YouTube API failed'
end
kind() click to toggle source
# File lib/yt/errors/request_error.rb, line 18
def kind
  response_body.fetch 'error', {}
end
message() click to toggle source
# File lib/yt/errors/request_error.rb, line 11
      def message
        <<-MSG.gsub(/^ {8}/, '')
        #{explanation}:
        #{Yt.configuration.debugging? ? details : no_details }
        MSG
      end
reasons() click to toggle source
# 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_body() click to toggle source
# File lib/yt/errors/request_error.rb, line 37
def response_body
  json['response_body'].is_a?(Hash) ? json['response_body'] : {}
end

Private Instance Methods

details() click to toggle source
# File lib/yt/errors/request_error.rb, line 43
      def details
        <<-MSG.gsub(/^ {8}/, '')
        #{response_body}

        You can retry the same request manually by running:
        #{request_curl}
        #{more_details}
        MSG
      end
json() click to toggle source
# File lib/yt/errors/request_error.rb, line 70
def json
  @json ||= JSON(@msg) rescue {}
end
more_details() click to toggle source
# File lib/yt/errors/request_error.rb, line 63
def more_details
end
no_details() click to toggle source
# File lib/yt/errors/request_error.rb, line 53
      def no_details
        <<-MSG.gsub(/^ {8}/, '')
        To display more verbose errors, change the configuration of Yt with:

        Yt.configure do |config|
          config.log_level = :debug
        end
        MSG
      end
request_curl() click to toggle source
# File lib/yt/errors/request_error.rb, line 66
def request_curl
  json['request_curl']
end