Hanami v1.0.0.beta1がリリースされました

画像


花見については、すでにHabréについて書いています。


機能の凍結、プロジェクトレベルのロガー、HTTP要求の自動ログ、SQLクエリ、および移行。 マイナーなバグ修正。


リリースv1.0.0.beta1 は、 1.0用の新しい Hanami 機能の開発をフリーズしますが、同時にいくつかの新機能といくつかの修正を追加します。


今後、 Hanami APIはバージョン2.0まで安定した状態を維持します


2017年3月末から4月初めにかけて安定したリリース( v1.0.0 )が予定されています。これは、日本で咲く桜(花見)を賞賛する伝統と一致しています。


この間、Hanamiチームは他のベータ版リリース候補版をリリースします。


特徴


Hanamiは、Ruby 2.3+(最新の2.4を含む)およびRack only 2.0と互換性があります。


プロジェクトロガー


プロジェクトレベルのロガーをHanami.loggerとして追加しました。 何かをログに記録する必要がある場合は、次のようにします: Hanami.logger.debug "hello"


このため、アプリケーションレベルのロガーを削除する必要がありました(例: Web.loggerAdmin.logger )。
したがって、個々のアプリケーションのロガーの設定はサポートされなくなりました(つまり、 apps/web/application.rb )。 ロガーを設定するには、 config/environment.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.000381s) SELECT "id", "title", "created_at", "updated_at" FROM "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.001756s) 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.001738s) 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および機能リストを参照してください。


更新された宝石



寄稿者


このリリースのリリースを支援してくれたすべての人に感謝します。 これらの素晴らしい人々のリストは次のとおりです。



以前のバージョンからアップグレードする方法


v0.9でプロジェクトを更新する場合は、更新ガイドに注意してください


翻訳者から


最終リリースが間近に迫っているので、まだフレームワークを実行していない場合は、最終的にこのフレームワークを試してみましょう。


ロシア語で読むことに慣れている人のために-良いニュース: 公式文書とガイドの翻訳はすでに進行中です。 プールのリクエストを見て、参加し、送信してください。



Source: https://habr.com/ru/post/J321938/


All Articles