dennismonsewicz
dennismonsewicz

Reputation: 25552

Begin, Rescue with API endpoint

Here is my method:

def get_video_duration
  @time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
  format_duration
end

I need to write this method "better" in wrapping it with a begin, rescue block so that @time could be nil depending on the response from the API.

Upvotes: 0

Views: 114

Answers (2)

Arup Rakshit
Arup Rakshit

Reputation: 118289

Yes, possible using inline rescue clause.

def get_video_duration
    @time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"] rescue nil
    format_duration
end

Or better explicitly do it.

def get_video_duration
  @time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
rescue YourException
  @time = nil
  format_duration
end

Upvotes: 2

SciPhi
SciPhi

Reputation: 2665

Maybe break it down with an additional method :

def fetch_video_duration

  Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]

  rescue
    return nil
end

def get_video_duration
  @time ||= fetch_video_duration

  format_duration
end

Upvotes: 1

Related Questions