We are pleased to announce the release of Ruby 2.5.0.

Ruby 2.5.0 is the first stable release of the Ruby 2.5 series. It introduces many new features and performance improvements. The notable changes are as follows:

New Features

  • rescue/else/ensure are now allowed to be used directly with do/end blocks. [Feature #12906]
  • Add yield_self to yield given block in its context. Unlike tap, it returns the result of the block. [Feature #6721]
  • Support branch coverage and method coverage measurement. The branch coverage indicates which branches are executed and which are not. The method coverage indicates which methods are invoked and which are not. By running a test suite with these new features, you will know which branches and methods are executed, and evaluate total coverage of the test suite more strictly. [Feature #13901]
  • Hash#slice [Feature #8499] and Hash#transform_keys [Feature #13583]
  • Struct.new can create classes that accept keyword arguments. [Feature #11925]
  • Enumerable#any?, all?, none?, and one? accept a pattern argument. [Feature #11286]
  • Top-level constant look-up is no longer available. [Feature #11547]
  • One of our most loved libraries, pp.rb, is now automatically loaded. You no longer have to write require “pp”. [Feature #14123]
  • Print backtrace and error message in reverse order (oldest call first, most recent call last). When a long backtrace appears on your terminal (TTY), you can easily find the cause line at the bottom of the backtrace. Note that the order is reversed only when the backtrace is printed out to the terminal directly. [Feature #8661] [experimental]

References

Ruby 2.5.0 Released
https://www.ruby-lang.org/en/news/2017/12/25/ruby-2-5-0-released/

Ruby Ruby 2.5.0 已发布
https://ruby-china.org/topics/34771

New features in Ruby 2.5
https://blog.blogbins.com/new-features-in-ruby-2-5/

打赏

Leave a Reply

Your email address will not be published. Required fields are marked *