Релси под капака

Следващите няколко статии ще покрият скъпоценни камъни, които са инсталирани като зависимости на релси. Списъкът ще бъде в реда, в който се показват в списъка с пакети. Отивам.

Rake - какво е това и защо е необходимо?

С много прости думи:Rake е помощен инструмент за ruby ​​​​проекти. Той предоставя DSL за писане на ruby ​​задачи, които могат да се стартират от командния ред

По-трудно:Rake е Ruby Make, самостоятелна помощна програма, която замества помощната програма за създаване на UNIX. Той използва Rakefile и .rake файлове. Rails използва рейк за административни задачи. Ако въведете rake --tasks в конзолата, тогава ще получим набор от команди за работа с активи, кеш, база данни и т.н. Можем също така да създадем наши собствени задачи. Програмистите обикновено ги използват или за оптимизиране на действията си, или за промяна и някакъв вид обработка на данни на сървъра.

i18n - многоезичност и интернационализация

Този скъпоценен камък улеснява разработването на вашия интерфейс на няколко езика наведнъж. Именно той добавя помощника t (), който ви позволява да получите фраза на желания език чрез псевдоним. Самите псевдоними и фрази са организирани удобно с помощта на YAML файлове.

json - пакетиране на данни в JSON и обратно

Gem се използва за конвертиране на данни в json и обратно. Ако не се лъжа, пише се с рубин и се използва в повечето случаи. Но ако преобразуването в json е вашият проблем с производителността, можете да използвате по-бързия gem oj. Пак казвам, ако не се лъжа, написана е на C и е много бърза.

minitest е стандартен rails компонент за тестване.

Това е DSL за писане на тестове. Но за тестовевсе още е по-добре да използвате някой по-мощен инструмент, като RSpec, който стана много по-добър след версия 3.

thread_safe - безопасна за нишки реализация на множество ruby ​​обекти.

Скъпоценният камък осигурява безопасна за нишки реализация на масив и хеш.

Кеш - по-бързо внедряване на ThreadSafe::Hash, но не е напълно съвместимо с ruby ​​​​Hash

tzinfo - работа с дати в няколко часови зони и преобразуването им в една

активна поддръжка - разширяване на ruby

„Rails е убийственото приложение за Ruby.“ – Юкихиро Мацумото, създател на Ruby

Ruby е създаден да бъде удобен предимно за програмиста. И същите тези програмисти непрекъснато работят за разширяване на базовите Ruby класове. Всъщност това е точно това, което прави скъпоценният камък на activesupport - той разширява ruby ​​​​за да го направи още по-удобен. Притеснения като по-разширени модули, HashWithIndifferentAccess, методи на низове като pluralize, humanize и т.н. Много огромен брой методи, които се добавят към няколко класа наведнъж, например

И е много готино, толкова готино, че най-популярните от тях след това се прехвърлят на ruby ​​като част от езика. Но има и неприятни моменти, например, когато пишете с чист рубин, разбирате, че няма много неща, с които сте свикнали. Съветвам всички да прочетат оригиналната документация

конструктор - Генериране на XMLerubis - бързо внедряване на eRuby

Честно казано, все още не разбрах напълно какво е и защо е в релси, но очевидно това е някакъв шаблонен двигател за изгледи, например като erb

mini_portile - пренасяне на библиотеки за отстраняване на грешки

Тази помощна програма е необходима за поддържащите релси. Разработчикът не може да си позволи да каже „Всичко това работи за мен, но какво има тамразберете сами” mini_portile ще ви помогне лесно и най-важното временно да инсталирате други версии на библиотеки

Това е пример от официалната документация, тук е инсталирането на библиотеката libiconv версия 1.13.1

nokogiri - скъпоценен камък за изстъргване на мрежата

Отличен инструмент, ако трябва да извлечете информация от уеб страници на други хора. Той анализира структурата и ви позволява да търсите елементи, използвайки синтаксиса на jQuery. кратък пример:

rails-deprecated_sanitizer - санирането е пренаписано в rails 4.2. Този скъпоценен камък е за съвместимост и ще бъде премахнат в релси 5

rails-dom-testing - тестване на структурата на къщата

При интеграционното тестване често трябва да проверим дали конкретен елемент е на страницата.

луфа - дезинфекция на HTML/XML код

rails-html-sanitizer - Мисля, че името говори само за себе си. Това е новото дезинфекция в rails 4.2

actionview - реализация на буквата V от шаблона MVC

Отговаря за логиката на представянията в релси. Позволява ви да използвате различни механизми за шаблони, позволява ви да разделяте кода на части, зарежда помощници и т.н. Също така включва основни помощници за релси: работа с формуляри, включително стилове и скриптове и т.н.

рейк - Какво е багажник с прости думи

Какво е багажник е много важна тема и заслужава отделна статия, но ще се опитам да обясня защо е необходим и какво място заема в релсите

Rack е слой между сървъра и приложението. Когато един от rails сървърите (unicorn, puma, thin или който и да е друг) бъде стартиран, портът става достъпен на машината, на която работи. Уеб браузърът изпраща заявка до този порт, която изглежда по следния начин

И очаква отговор, който изглежда нещо подобно

Така че, багажникпревежда входящия отговор във формата, описан в неговата спецификация, и прехвърля контрола на приложението. Съответно самото приложение трябва да е съвместимо с стелажи.

Още веднъж - сървърът отговаря за приемането на заявката. Той решава проблемите с оптимизирането на този процес, многонишковостта, взаимодействието с NGINX и т.н. Те използват стелаж за прехвърляне на управление към приложения, съвместими с рака. Приложението ще обработи данните, получени от стелажа, и ще върне отговор във формата, описан също в спецификацията на стелажа. Сървърът изпраща този отговор на браузъра. Мисля, че това е доста интересна тема и ще напиша отделна статия.

rack-test - тестова рамка за стелажно приложение

Тази библиотека ни позволява да пишем интеграционни тестове за случаи, когато не се нуждаем от поддръжка на javascript в теста. Тя ви позволява да формирате заявка и да я подадете към приложението, като това няма да се различава по никакъв начин от истинската заявка от браузъра.

капака

Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.

капака

Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.

това

Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.

релси

Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit.