DevToolPal
UK

Форматувальник Ruby

Форматуйте Ruby-код за допомогою Syntax Tree на справжньому інтерпретаторі Ruby, скомпільованому у WebAssembly.

Працює локально, нічого не завантажується на сервер

Параметри

Перше форматування завантажує інтерпретатор Ruby (близько 13 МБ) і може тривати кілька секунд; наступні запуски миттєві.

Вхідні дані

0 симв. · 0 B

Результат

0 симв. · 0 B

Що робить цей інструмент

Форматувальник Ruby переписує код Ruby з послідовними відступами й пробілами. Вставте скрипт, модель Rails чи Rakefile — і отримаєте відступи у два пробіли, одну інструкцію на рядок, пробіли навколо операторів і всередині фігурних дужок, а довгі ланцюжки викликів методів будуть перенесені відповідно до ширини рядка.

Він використовує Syntax Tree на справжньому інтерпретаторі Ruby, скомпільованому у WebAssembly. Оскільки парсер — власний парсер Ruby, сучасний синтаксис, як-от endless-методи, зіставлення зі зразком (pattern matching) і ключові аргументи, розуміється точно так, як його розуміє Ruby.

Як користуватися

  1. Вставте код Ruby або відкрийте файл .rb.
  2. Дочекайтеся першого результату. Інтерпретатор завантажується один раз у фоновому режимі.
  3. Виберіть Ширина рядка. Довші рядки розбиваються на викликах методів, аргументах чи елементах хешу.
  4. Скопіюйте або збережіть відформатований код.

Якщо код не вдається розібрати, інструмент показує синтаксичну помилку Ruby, наприклад syntax error, unexpected 'end', щоб ви могли знайти, чого бракує.

Приклад

Приклад — невеликий модуль кошика покупок, написаний без уваги до форматування: тіло класу без відступів, initialize в один рядок через крапки з комою, хеші без пробілів і тернарний оператор без пробілів навколо >. Після форматування модуль і клас отримують відступи, кожна інструкція в initialize — окремий рядок, літерали хешів стають { name: name, price: price, qty: qty }, а тернарний оператор виглядає як cart.total > 10 ? "big order" : "small order".

Чого форматувальник не змінює

Форматувальник змінює лише розмітку коду. Він не перейменовує змінні, не перетворює «hash rockets» на новий синтаксис і не перемикає одинарні й подвійні лапки. Коментарі зберігаються. Якщо потрібні такі стильові виправлення, після форматування запустіть автовиправлення RuboCop у своєму проєкті.

Поради

  • Використовуйте ту саму ширину рядка, що й у .rubocop.yml вашого проєкту (Layout/LineLength), щоб відформатований код проходив перевірку лінтера.
  • Форматування — швидкий спосіб знайти пропущений end: Ruby повідомляє, де здався, зазвичай одразу після незакритого блоку.

Часті запитання

› Який форматувальник тут використовується?

Syntax Tree — форматувальник Ruby, на якому побудовано офіційний плагін Prettier для Ruby. Він працює на CRuby, стандартному інтерпретаторі Ruby, скомпільованому у WebAssembly, тож розбирає ваш код точно так, як це робить сам Ruby.

› Чому перший запуск повільний?

Коли ви вперше щось форматуєте, сторінка завантажує інтерпретатор Ruby і форматувальник — близько 13 МБ — і запускає їх у фоновому воркері, щоб сторінка не зависала. Після цього форматування триває частку секунди.

› Чи дотримується він стилю RuboCop?

Здебільшого так. Syntax Tree робить відступ у два пробіли, пробіли всередині фігурних дужок хешів і навколо операторів та один порожній рядок між методами, що відповідає стандартним правилам розмітки RuboCop. Він не змінює стиль лапок і не переписує код так, як `rubocop -a`.

› Чи вивантажується мій код на сервер?

Ні. Усе виконується у вашому браузері, і нічого не надсилається на сервер.