Материалы для подготовки

  • Официальный сайт rubygems.org
  • Описание структуры джема на rubygems.org
  • Список популярных ждемов по категориям ruby-toolbox.com
  • Официальный сайт инструмента Bundler bundler.io
  • Официальный сайт инструмента Rubocop http://batsov.com/rubocop/
  • Руководство по стилю оформления Ruby Ruby Style Guide
  • Официальный перевод руководства на русский язык руководства по стилю офомления Ruby Ruby Style Guide

Задачи на поиск и установку библиотек

Цель: научиться искать джемы по названию, использовать инструментарий gem для просмотра и управлением установленными джемами.

Микро-задачи

  1. Найдите все библиотеки, в названиях которых есть json.
  2. Найдите все библиотеки, в названиях которых есть xlsx.
  3. Посмотрите список установленных библиотек.
  4. Установите библиотеку write_xlsx.
  5. Какие джемы помимо write_xlsx были установлены в систему?
  6. Удалите джем write_xlsx. Были ли удалены все джемы, что были поставлены вместе с ним?

Задачи на исправление собственного исходного кода

Для решения задач вам потребуется иметь решённую практику по созданию собственных классов.

Для каждого приложения выполните следующие задачи.

Исправление структуры приложения

  1. Скопируйте старый код приложения в новый каталог.
  2. Исправьте структуру приложения согласно структуре джема.
  3. Сравните полученный результат с изначальной структурой каталогов.

Важно после исправления структуры каталогов проверьте, что приложение продолжает выполнять свои функции.

Проверка исходного кода с помощью Rubocop

  1. Создайте файл Gemfile в корне проекта.
  2. Добавьте зависимость от джема Rubocop.
  3. Скопируйте в конфигурационный файл Rubocop конфигурацию курса:

    Metrics/AbcSize:      # Отключение ABC-проверок
      Enabled: false
    Metrics/LineLength:   # Длина строк 120
      Max: 120
    Metrics/MethodLength: # Количество строк кода 15
      Max: 15
    Style/NegatedIf:      # Не форсировать unless
      Enabled: false
    
  4. Проверьте исходный код своего проекта с помощью Rubocop и исправьте его в соответствии с пожеланиями.

Задачи на использование новых джемов

Ввод данных от пользователя с помощью tty-prompt

Внимание данная библиотека не позволяет ввести русские символы под Windows.

  1. Добавьте в Gemfile вашего проекта зависимость от библиотеки tty-prompt.
  2. Добавьте в ваше приложение возможность интерактивного добавления данных от пользователя.
    1. Для приложения с комплексными числами обеспечьте возможность ввода новых чисел и выполнения операций над известными числами.
    2. Для приложения с автомобилями обеспечьте ввод данных об автомобилях перед выполнением рассчётов.

При реализации вам необходимо создать только 1 экземпляр объекта TTY::Prompt.

Отображение информации на изображениях с помощью chunky_png

  1. Добавьте в Gemfile вашего проекта зависимость от библиотеки chunky_png.
  2. Реализуйте следующие функции в ваших приложениях.
    1. В приложении для работы с комплексными числами обеспечьте формирование файла map.png, в котором на плоскости будут отображены точками все известные приложению комплексные числа.
    2. Для приложения с автомобилями постройте гистограмму по потреблению топлива. Результат выведите в виде столбчатой диаграммы в файл gasoline_gistogram.png.