Con qualche giorno di ritardo, segnalo la disponibilità di una nuova release del linguaggio Ruby: Ruby 1.8.7.
Ruby 1.8.7 include numerosi bugfix ma, soprattutto, alcune novità prese in prestito da Ruby 1.9.0.
Tra queste, quella più attesa ma soprattutto più significativa è l'introduzione della classe Enumerable::Enumerator, nonché la sua integrazione all'interno di moltissimi metodi già esistenti.
Un'esempio? Direttamente dalla lista dei cambiamenti di Ruby 1.8.7 ecco le modifiche ad alcuni metodi della classe Array
.
- Array#collect!
- Array#map!
- Array#each
- Array#each_index
- Array#reverse_each
- Array#reject
- Array#reject!
- Array#delete_if
Return an enumerator if no block is given.
Note that #map and #collect still return an array unlike Ruby 1.9 to keep compatibility.
Ma le modifiche riguardano anche Dir
, Object
, Hash
, Integer
e molte altre classi.
Consiglio vivamente la lettura della lista delle novità .
Tra gli altri cambiamenti meritano una segnalazione l'introduzione della cartella vendor_ruby
,
A new library directory named `vendor_ruby' is introduced in addition to `site_ruby'. The idea is to separate libraries installed by the package system (`vendor') from manually (`site') installed libraries preventing the former from getting overwritten by the latter, while preserving the user option to override vendor libraries with site libraries. (`site_ruby' takes precedence over `vendor_ruby')
il supporto SSL/TSL in Net::SMTP, il supporto a feed Atom e moduli ITunes e Slash per RSS.
A differenza di Ruby 1.9.0, Ruby 1.8.7 non è una release di sviluppo e si consiglia l'aggiornamento sui server, non prima di aver verificato le incompatibilità con le versioni precedenti, indicate nel solito file NEWS.