Search⌘ K

Solution: Meal Categories

Explore how to use Ruby methods to connect to the internet, handle exceptions, and parse JSON data to retrieve meal categories. This lesson helps you master file and network operations by implementing practical error handling and data extraction from online sources.

We'll cover the following...

Solution

# This program download 
require 'net/http'
require 'uri'

def get_url_content(url)
  puts "Conntecting to server..."
  begin
    url_content =   Net::HTTP.get(URI.parse(url))
    puts "Conntected!"
    return url_content
  rescue => e
    puts "Unable to connect to the server, Error: '#{e}'"
    exit(-1)
  end
end

def retrieve_meal_categories
  require 'json'
  json_str = get_url_content("https://www.themealdb.com/api/json/v1/{{FREE_API_KEY}}/list.php?c=list")
  begin
    json_obj = JSON.parse(json_str)
    return json_obj["meals"]
  rescue => e
    puts "Unable to parse JSON object, Error: #{e}"
    exit(-1)
  end
end

array = retrieve_meal_categories
puts "Here are the meal categories: "
array.each do |hash|
  puts hash["strCategory"]
end
Retrieving meal categories from a live service

Explanation

  • Lines 5–15: The get_url_content method connects to the internet and handles any exception ...