機能の凍結、プロジェクトレベルのロガー、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.logger
、 Admin.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および機能リストを参照してください。
更新された宝石
-
hanami-1.0.0.beta1
-
hanami-model-1.0.0.beta1
-
hamami-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
寄稿者
このリリースのリリースを支援してくれたすべての人に感謝します。 これらの素晴らしい人々のリストは次のとおりです。
- エイドリアン・マドリード
- アルフォンソ・ウセダ
- アンディ・ホランド
- バヌ・プラカシュ
- ガブリエル・ギゾッティ
- ヤクブ・パブリク
- カイ・クーヘンベッカー
- クセニア・ザレスナヤ
- レオナルド・サライバ
- ルーカス・ホセイニ
- マルチェロ・ロシャ
- マリオン・デュパー
- マリオン・シュライファー
- マティアス・H・ライデマー
- ミハイル・グラチェフ
- ニック・ローランド
- ニキータ・シルニコフ
- オアナ・シポス
- 小沢さくろ
- パスカルベッツ
- フィリップ・アーント
- ピョートル・ソリニカ
- セミョン・ププコフ
- ソルビョーン・ヘルマンセン
- ティアゴ・ファリアス
- ビクター・フランコ
- ウラジミール・ドラロ
- alexd16
- b264
- ユジュカク
以前のバージョンからアップグレードする方法
v0.9
でプロジェクトを更新する場合は、更新ガイドに注意してください 。
翻訳者から
最終リリースが間近に迫っているので、まだフレームワークを実行していない場合は、最終的にこのフレームワークを試してみましょう。
ロシア語で読むことに慣れている人のために-良いニュース: 公式文書とガイドの翻訳はすでに進行中です。 プールのリクエストを見て、参加し、送信してください。