Elixir v1.8のリリースが2019年1月に予定されています。それに先立ってPlataformatec社のblogに2018年11月16日付で「What’s new in Elixir – Nov/18」と題して、すでに加えられたおもな新機能が紹介されました。本稿はPlataformatec社の許諾を得て、この記事の内容にGitHubのコミット情報も加え、整理してご説明します。
-
mix test
のタスクに--max-failures
のフラグが加わります。- コミット「Introduce ExUnit --max-failures feature」
- 指定したn回の失敗に達すると、スイートは中止されます。そして、返されるのは、それまでに終えたテストの回数です。モジュールが無効のときは、その旨を報告する一方で、そのテストはすべて失敗に数えられます。
-
Inspect
プロトコルが簡単に引き出せるようになります。この仕組みが役立つのは、検査やログから、とくにセキュリティ関連について、特定のフィールドを除けることです。- コミット「Allow Inspect protocol to be derivable with the only/except options」
-
Inspect
プロトコルで構造体から特定のフィールドを隠して、検査やログなどに表示しないようにできます。個人情報を含むフィールドなどに有用です。@derive
に:only
や:except
オプションで表示する、あるいはしないフィールドが定められます。
-
:extra_applications
の設定により、Mixは自動的にオプションの依存関係を開始します。- コミット「Include optional dependencies in extra_applications」
- これまではオプションの依存関係は、
compile.app
が自動的にはextra_applications
に含めませんでした。
-
Elixirはタイムゾーンデータベースの公式サポートを受けます。デフォルトで扱うのはUTCのみです。けれど、別のデータベースにより、他のタイムゾーンで
DateTime
APIが使えます。- コミット「Add TimeZoneDatabase behaviour for time zone data.」
- 他のタイムゾーンデータベース(パッケージによるものも含む)は、
config
でデフォルトに定めるか、Calendar.put_time_zone_database/1
を呼び出して使います。
-
その他の追加として、たとえばつぎのような関数があります。
加えられた変更について詳しくは、「CHANGELOG」をご参照ください。今後の変更や機能の追加は、Elixirの「Issues」でご覧いただけます。
Top comments (0)