Book Image

The Ruby Workshop

By : Akshat Paul, Peter Philips, Dániel Szabó, Cheyne Wallace
Book Image

The Ruby Workshop

By: Akshat Paul, Peter Philips, Dániel Szabó, Cheyne Wallace

Overview of this book

The beauty of Ruby is its readability and expressiveness. Ruby hides away a lot of the complexity of programming, allowing you to work quickly and 'do more' with fewer lines of code. This makes it a great programming language for beginners, but learning any new skill can still be a daunting task. If you want to learn to code using Ruby, but don't know where to start, The Ruby Workshop will help you cut through the noise and make sense of this fun, flexible language. You'll start by writing and running simple code snippets and Ruby source code files. After learning about strings, numbers, and booleans, you'll see how to store collections of objects with arrays and hashes. You'll then learn how to control the flow of a Ruby program using boolean logic. The book then delves into OOP and explains inheritance, encapsulation, and polymorphism. Gradually, you'll build your knowledge of advanced concepts by learning how to interact with external APIs, before finally exploring the most popular Ruby framework ? Ruby on Rails ? and using it for web development. Throughout this book, you'll work on a series of realistic projects, including simple games, a voting application, and an online blog. By the end of this Ruby book, you'll have the knowledge, skills and confidence to creatively tackle your own ambitious projects with Ruby.
Table of Contents (14 chapters)

7. Introduction to Ruby Gems

Activity 7.01: Presenting Voting Data in CSV Format Using Ruby Gems

Solution

  1. Download the votes.csv file from https://packt.live/2OzNN6a. Place this under test/fixtures. The CSV file will contain the following data:
    category,votee,count
    VoteCategoryA,Chris Jones,23
    VoteCategoryA,Susie Bennet,29
    VoteCategoryB,Allan Green,33
    VoteCategoryB,Tony Bennet,23
  2. We'll start with our VoteImporter service object. Test whether it imports data from the CSV and perform a few basic checks to ensure that the content is what we're expecting. Create the test_vote_importer.rb file in the tests folder with the following code:
    require "minitest/autorun"
    require 'minitest/stub_any_instance'
    require_relative "../services/vote_importer"
    class TestVoteImporter < Minitest::Test
      def test_perform
        # Import vote data from our tests/fixtures/votes.csv file
        filepath = &apos...