The ability to mark all string literals as frozen by default with a consequently large performance increase in string operations. Hash comparison to allow direct checking of key/value pairs instead of just keys. A new safe navigation operator &. that can ease nil handling (e.g. instead of , we can use if obj&.foo&.bar). The did_you_mean gem is now bundled by default and required on startup to automatically suggest similar name matches on a NameError or NoMethodError. Hash#dig and Array#dig to easily extract deeply nested values (e.g. given profile = { social: { wikipedia: { name: 'Foo Baz' } } }, the value Foo Baz can now be retrieved by profile.dig(:social, :wikipedia, :name)). .grep_v(regexp) which will match all negative examples of a given regular expression in addition to other new features.
The ability to mark all string literals as frozen by default with a consequently large performance increase in string operations Hash comparison to allow direct checking of key/value pairs instead of just keys A new safe navigation operator & that can ease nil handling (eg instead of  we can use if obj&foo&bar) The did_you_mean gem is now bundled by default and required on startup to automatically suggest similar name matches on a NameError or NoMethodError Hash#dig and Array#dig to easily extract deeply nested values (eg given profile = { social { wikipedia { name 'Foo Baz' } } } the value Foo Baz can now be retrieved by profiledig(social wikipedia name)) grep_v(regexp) which will match all negative examples of a given regular expression in addition to other new features