Новая обложка RubyDigest
Новая обложка RubyDigest

В этом дайджесте:

  • Обновление популярных гемов.

  • Митапы, где засветился Ruby.

  • Интересные open-source проекты на GitHub.

  • Ruby 3.1.0

  • Подборка полезных гемов.

  • Интересный контент, связанный с Ruby.

Обновление популярных гемов

  • Cвое обновление получил гем для работы с CLI и GitLab API: gitlab (4.18.0).

  • Обновился гем предназначенный для работы с pdf-файлами: pdf_paradise (0.1.47).

  • Новая версия appium_lib_core (5.1.0), который нужен для работы с Appium.

  • i18n-tasks за эту неделю выкатывается в двух новых версиях, крайняя из которых (0.9.37).

  • openssl обновляется до (3.0.0).

  • В стороне декабрьских обновлений не остается и unicorn с новой версией (6.1.0).

  • Появилась новая версия rubocop-rails (2.13.0) и в декабре гем перевалил отметку в 45 млн. установок.

  • За неделю bundler обновился 4 раза, с (2.3.0) по (2.3.3) версии, включительно.

Митапы, где засветился Ruby

На этой неделе, масштабных митапов и конференций посвященных Ruby не проходило, но уже 27 января 2022 года в Москве пройдет 15-й Ruby Meetup (заявки на доклады прекратили принимать в начале декабря).

Интересные open-source проекты на GitHub

Для новичков, очень важно участвовать в open-source проектах написанных на изучаемом ими языке. В данной части дайджеста я поведаю о интересных os-проектах на просторах github в которых вы можете попробовать поучаствовать. Так же в следующих дайджестах будет специальный "блок новичка" где будут приведены проекты, где будет легко учиться и участвовать непосредственно новичкам.


metasploit-framework

  • Популярность : известный.

  • Сложность: высокая.

  • Назначение: infosec.

  • Участников: >500.

Репозиторий на GitHub

discourse

  • Популярность : известный.

  • Сложность: высокая.

  • Назначение: chat.

  • Участников: >500.

Репозиторий на GitHub

choosealicense.com

  • Популярность : известный.

  • Сложность: средняя.

  • Назначение: site.

  • Участников: >100.

Репозиторий на GitHub

duino-coin

  • Популярность : малоизвестный.

  • Сложность: легкая.

  • Назначение: crypto / miner.

  • Участников: >50.
    Примчание: можно поучаствовать в написании майнера на Ruby или взять за основу API проекта и придумать полезный инструмент. Главный разработчик DuinoCoin приветствует Ruby-программы и Ruby-разработчиков.

github conribute



Cам я участвую в этом проекте. На данный момент занимаюсь инструментом для создания и администрирования майнинг фермы дуко-койнов на Arduino и OrangePi. Так же занимался переводом Readme.md и документации на русский язык.

Репозиторий на GitHub


Ruby 3.1.0

work made in FIGMA (sailordev)
work made in FIGMA (sailordev)



25 декабря вышел релиз новой версии Ruby (3.1.0)
Подробнее можно узнать в официальном зеркале-репозитория Ruby.

Что нового?
- Обновление стандартных библиотек
- Улучшение производительности
- Исправили Баг#4443

Что же обновили и добавили (кратко):

Стандартные библиотеки, которые обновились с новым релизом
  • RubyGems 3.3.3

  • base64 0.1.1

  • benchmark 0.2.0

  • bigdecimal 3.1.1

  • bundler 2.3.3

  • cgi 0.3.1

  • csv 3.2.2

  • date 3.2.2

  • did_you_mean 1.6.1

  • digest 3.1.0

  • drb 2.1.0

  • erb 2.2.3

  • error_highlight 0.3.0

  • etc 1.3.0

  • fcntl 1.0.1

  • fiddle 1.1.0

  • fileutils 1.6.0

  • find 0.1.1

  • io-console 0.5.10

  • io-wait 0.2.1

  • ipaddr 1.2.3

  • irb 1.4.1

  • json 2.6.1

  • logger 1.5.0

  • net-http 0.2.0

  • net-protocol 0.1.2

  • nkf 0.1.1

  • open-uri 0.2.0

  • openssl 3.0.0

  • optparse 0.2.0

  • ostruct 0.5.2

  • pathname 0.2.0

  • pp 0.3.0

  • prettyprint 0.1.1

  • psych 4.0.3

  • racc 1.6.0

  • rdoc 6.4.0

  • readline 0.0.3

  • readline-ext 0.1.4

  • reline 0.3.0

  • resolv 0.2.1

  • rinda 0.1.1

  • ruby2_keywords 0.0.5

  • securerandom 0.1.1

  • set 1.0.2

  • stringio 3.0.1

  • strscan 3.0.1

  • tempfile 0.1.2

  • time 0.2.0

  • timeout 0.2.0

  • tmpdir 0.1.2

  • un 0.2.0

  • uri 0.11.0

  • yaml 0.2.0

  • zlib 2.1.1

Следующие гемы по умолчанию теперь объединены в пакеты.

Следующие гемы по умолчанию теперь объединены в пакеты. Вам необходимо добавить следующие библиотеки в Gemfile-проекта.

  • net-ftp 0.1.3

  • net-imap 0.2.2

  • net-pop 0.1.1

  • net-smtp 0.3.1

  • matrix 0.4.2

  • prime 0.1.2

  • debug 1.4.0

Улучшения производительности

MJIT
Для таких рабочих нагрузок, как Rails, значение по умолчанию --jit-max-cache изменено со 100 на 10000. JIT-компилятор больше не пропускает компиляцию методов, длина которых превышает 1000 инструкций.

Для поддержки Zeitwerk of Rails код JIT-ed больше не отменяется при включении TracePoint для событий класса.

Другие заметные изменения по сравнению с 3.0

Однострочный паттерн, например, ary => [x, y, z], больше не экспериментальный.

Слегка изменен порядок оценки нескольких заданий.[Баг #4443]

Перевод релиза является авторским, может быть не совсем точным, так как русскую версию релиза еще не опубликовали на https://www.ruby-lang.org/.

Перейти к английской версии релиза.

Подборка полезных гемов от sailordev #1

C гемами можно будет познакомится на https://rubygems.org/, вписав название из поброки в поисковую строку:

Поисковая строка на RubyGems.org
Поисковая строка на RubyGems.org

Веб-разработка

  • Shoulda
    Позволяет вам создавать более понятные тесты для вашего приложения Ruby.

  • Nokogiri
    С этим гемом я познакомился в самом начале изучения Ruby. Анализатор HTML, XML, SAX и Reader. Хорошо подходит для веб-парсинга.

  • Formtastic
    Упрощает создание красивых HTML-форм в ваших приложениях.

  • Eventmachine
    Реализует быстрый однопоточный движок для произвольных сетевых коммуникаций.

  • HAML
    Язык разметки для упрощённой генерации HTML.

Для консольных приложений

Я сам очень люблю писать консольные "тулзы" на ruby, облегчающие какие-то задачи или вовсе их автоматизировать. Приведу в пример пока что только два, необязательных, вспомогательных гема.

  • byebug
    Используется для дебага кода на Ruby. Я его использовал для создания парсера ссылок на прямые файлы фильмов их названия, занося в базу данных.

  • colorize
    Использую для "покраски" консольных приложений. Меняет цвет текста в консоли.

Интересный контент, связанный с Ruby

Думаю, на столь прекрасной ноте можно завершить дайджест. До 31 декабря (Новогодний Дайджест, итоги 2021 года для Ruby-коммьюнити).

Данила Кравченко

Ruby-разработчик / Ведущий RubyDigest на habr.com

Комментарии (3)


  1. Xzc3Nzc3Nzdf
    27.12.2021 18:55
    +1

    Скажите Ruby 3.1 сильно отличается от 2.6? Пробовал изучать когда была эта версия, но забросил, не было времени.


    1. sailordev Автор
      27.12.2021 19:04

      Ответ

      Думаю, что лучше сделать апдейт на 3.1, чтобы идти в ногу с языком. А так, код написанный на 2.6 будет работать тоже.https://www.ruby-lang.org/ru/news/2020/12/25/ruby-3-0-0-released/Часть: "Другие значимые отличия от 2.7"

      Тут официальная статья, где есть сравнение 3.0 и 2.7, чтобы не быть голословным, можете ее прочитать. Постараюсь сделать небольшую статью, адаптированную под различия 3.1 с предыдущими релизами.


  1. sailordev Автор
    27.12.2021 19:01

    Думаю, что лучше сделать апдейт на 3.1, чтобы идти в ногу с языком. А так, код написанный на 2.6 будет работать тоже.
    https://www.ruby-lang.org/ru/news/2020/12/25/ruby-3-0-0-released/
    Часть: "Другие значимые отличия от 2.7"

    Тут официальная статья, где есть сравнение 3.0 и 2.7, чтобы не быть голословным, можете ее прочитать. Постараюсь сделать небольшую статью, адаптированную под различия 3.1 с предыдущими релизами.

    UPD: Промазал с ответом.