Ruby is a modern, dynamic, post object-oriented/functional programming language. It blends syntax and features from Perl, Lisp, Eiffel, Ada and Smalltalk, with flexible expressions, dynamic but strict typing, mixins and explicit scoping. It's available in different runtimes, on most platforms, and a complete extension ecosystem.
2.2.214 Apr 2015 04:10
teeny security bugfix:
This release includes the security fix for a OpenSSL extension s hostname
verification vulnerability (CVE-2015-1855) to follow RFC 6125 more strictly.
OpenSSL::Random made available on Windows.
Segfault in parse.y fixed.
Time locale and encoding fixes.
Enable smart chomp for all strings.
File.c (rb_file_identical_p): fix handle leak, ensure to close
the handle of the first argument.
2.2.026 Dec 2014 13:26
Literal nil/true/false objects are frozen.
Hash literal symbol key followed by a colon can be quoted.
Default argument: fixed a very longstanding bug that an optional argument was not accessible in its default value expression.
New methods: Binding#local_variables, Binding#receiver
Dir#fileno, Enumerable#slice_after, Enumerable#slice_when, String#unicode_normalize, String#unicode_normalize!, String#unicode_normalized?.
Extended methods: min, min_by, max and max_by supports optional argument to return multiple elements.
Float#next_float, Float#prev_float, File.birthtime, File#birthtime, File::Stat#birthtime, IO#nonblock_read and IO#nonblock_write for pipes on Windows are supported.
New methods: Kernel#itself, Kernel#throw raises UncaughtThrowError, subclass of ArgumentError when there is no corresponding catch block, instead of ArgumentError.
Process execution methods such as Process.spawn opens the file in write
mode for redirect from :out, :err .
Most symbols which are returned by String#to_sym and, String#intern are GC-able.
Method#curry( arity ) returns a curried Proc.
Method#super_method returns a Method of superclass, which would be called when super is used.