Вийшла Hanami v1.0.0.beta1

image
Про Hanami вже писали на хабре, і у команди є, чим нас порадувати:
Заморозка фіч, логгер рівня проекту, автоматичне логгирование HTTP запитів, SQL-запити та міграції. Мінорні виправлення помилок.
Реліз
v1.0.0.beta1
заморожує розробку нового функціоналу) Hanami для 1.0, разом з тим додає кілька нових функцій і трохи виправлень.
З цього моменту Hanami API's буде залишатися стабільним аж до версії 2.0.
Стабільний реліз (
v1.0.0
) очікується між кінцем березня і початком квітня 2017, що збігається за часом з традицією милування квітучою Сакурою (Hanami) в Японії.
За цей час команда Hanami випустить інші beta і release candidate версії.
Можливості
Hanami зараз сумісний з Ruby 2.3+ (включаючи останній 2.4) і Rack лише 2.0.
Логгер проекту
Ми додали логгер рівня проекту, доступний як
Hanami.logger
.
Якщо тобі потрібно занести щось в лог, зроби приблизно так:
Hanami.logger.debug "привіт"
.
З цієї причини, логгер рівня додатків довелося прибрати (eg.
Веб.logger
,
Admin.logger
).
Отже, налаштування логгерів для індивідуальних програм більше не підтримуються (тобто всередині
apps/web/application.rb
).
Щоб налаштувати логгер, відредагуйте
config/environment.rb
.
Автоматичний логгинг
Проект, побудований на Hanami, може автоматично логировать входять HTTP запити, запити SQL та міграції.
Коли проект запущений в режимі розробки, формат логів виглядає більш читаемо:
[bookshelf] [INFO] [2017-02-11 15:42:48 +0100] HTTP/1.1 GET 200 127.0.0.1 /books/1 451 0.018576
[bookshelf] [INFO] [2017-02-11 15:42:48 +0100] (0.000381 s) SELECT "id", "title", "created_at", "updated_at" З "books" WHERE"book"."id" = '1') ORDER BY "books"."id"

Для продакшену, навпаки, JSON став форматом за замовчуванням.
JSON простіше парсити і він більше машино-орієнтований. Це добре поєднується з SaaS агрегаторами логів.
{"app":"bookshelf","severity":"INFO","time":"2017-02-10T22:31:51Z","http":"HTTP/1.1","verb":"GET","status":"200","ip":"127.0.0.1","path":"/books/1","query":"","length":"451","elapsed":0.000391478}

Міграції будуть писати в потік стандартного виводу операції, здійснені зі схемою бази даних.
➜ bundle exec hanami db migrate

[hanami] [INFO] Begin applying migration 20170213123250_create_books.rb, direction: up
[hanami] [INFO] (0.001756 s) CREATE TABLE `books` (`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT, `name` varchar(255) NOT NULL, `created_at` timestamp NOT NULL, `updated_at` timestamp NOT NULL)
[hanami] [INFO] (0.001738 s) INSERT INTO `schema_migrations` (`filename`) VALUES ('20170213123250_create_books.rb')
[hanami] [INFO] Finished applying migration 20170213123250_create_books.rb, direction: up, took 0.004091 seconds

Покращений генератор моделі
Генератор моделі відтепер і створює файл міграції для сутності, яку генерує.
➜ bundle exec hanami generate model book
create lib/bookshelf/entities/book.rb
create lib/bookshelf/repositories/book_repository.rb
create db/migrations/20170213123250_create_books.rb
create spec/bookshelf/entities/book_spec.rb
create spec/bookshelf/repositories/book_repository_spec.rb

Це згенерує сутність, а також відповідні репозиторій, міграцію, і шаблони для тестів.
Міграції відразу містять код для створення таблиці первинного ключа і тимчасових міток.
# db/migrations/20170213123250_create_books.rb
Hanami::Model.migration do
change do
create_table :books do
primary_key :id

column :created_at, DateTime, null: false
column :updated_at, DateTime, null: false
end
end
end

config/boot.rb

Нові проекти будуть створюватися з новим файлом:
config/boot.rb

require_relative './environment'
Hanami.boot

Це корисно для запуску сервісів оточення Hanami, особливо без доступу до сервера або консолі.
Типовий сценарій — Sidekiq Sidekiq.
Якщо ти хочеш запускати асинхронні завдання з цією чергою повідомлень, запусти процес так:
bundle exec sidekiq -r ./config/boot.rb

Мінорні зміни
Щоб переглянути повний список змін, перегляньте CHANGELOG і features list.
Оновлені релізом геми
  • hanami-1.0.0.beta1
  • hanami-model-1.0.0.beta1
  • хамами-controller-1.0.0.beta1
  • hanami-assets-1.0.0.beta1
  • hanami-mailer-1.0.0.beta1
  • hanami-helpers-1.0.0.beta1
  • hanami-view-1.0.0.beta1
  • hanami-validations-1.0.0.beta1
  • hanami-router-1.0.0.beta1
  • hanami-utils-1.0.0.beta1
Contributors
Ми вдячні кожному з тих, хто допомагав випустити реліз. Ось список цих чудовий людей:
Як оновитися з попередньої версії
Якщо ти хочеш оновити свій проект з
v0.9
, зверни увагу на керівництво по оновленню.
Від перекладача
Так як фінальний реліз вже не за горами, пора нарешті спробувати цей фреймворк, якщо ви ще не встигли цього зробити.
Для тих, кому звичніше читати російською — хороші новини: переклад офіційної документації та гайдів вже йде. Дивіться в пул-реквесты, приєднуйтесь, надсилайте свої.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.