DEV Community

gumi TECH for gumi TECH Blog

Posted on

Elixir: 次期バージョンv 1.8に加えられた新機能

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は自動的にオプションの依存関係を開始します。

  • Elixirはタイムゾーンデータベースの公式サポートを受けます。デフォルトで扱うのはUTCのみです。けれど、別のデータベースにより、他のタイムゾーンでDateTime APIが使えます。

    • コミット「Add TimeZoneDatabase behaviour for time zone data.
    • 他のタイムゾーンデータベース(パッケージによるものも含む)は、configでデフォルトに定めるか、Calendar.put_time_zone_database/1を呼び出して使います。
  • その他の追加として、たとえばつぎのような関数があります。

加えられた変更について詳しくは、「CHANGELOG」をご参照ください。今後の変更や機能の追加は、Elixirの「Issues」でご覧いただけます。

Top comments (0)