http://globaldev.co.uk/2014/05/ruby-2-1-in-detail
- New versioning policy
- Required keyword arguments
- String#freeze optimisation
- def returns the method name as a Symbol
- Rational and Complex literals
- Array/Enumerable #to_h
- Fine grained method cache
- Exception
- Generational Garbage Collection
- GC
- GC tuning environment variables
- ObjectSpace tools to track down memory leaks
- Refinements
- String#scrub
- Bignum/Rational performance improvements
- $SAFE level 4 removed
- clock_gettime
- RubyGems updated
- Deprecated Rake features removed
- RDoc template update
- Process title
- Frozen Symbols
- Fixed eval scope leak
- #untrusted? is now an alias of #tainted?
- return in lambda now always returns from lambda
- Get interface addresses
- Named capture support in StringScanner
- YAML.safe_load
- Resolv one-shot MDNS and LOC record support
- Improved Socket error messages
- Hash#shift much faster
- Queue, SizedQueue, and ConditionVariable performance improvements
- Timeout internal exception can’t be rescued
- Easier streaming responses with WEBrick
- Numeric#step
- Use IO _nonblock without raising exceptions
- IO ignores internal encoding if external encoding is ASCII-8BIT
- #include and #prepend now public
- Module/Class #singleton_class?
- Module#ancestors more consistent
- Object#singleton_method
- Method#original_name
- Mutex#owned?
- Hash#reject
- Vector#cross_product
- Fixnum/Bignum #bit_length
- pack/unpack Native Endian long long
- Dir glob returns composed characters
- Better type coercion for Numeric#quo
- Binding#local_variable_get/_set/_defined?
- CGI class methods now available from CGI::Util module
- Digest::Class.file passes arguments to initialiser
- Net::SMTP#rset
- open-uri supports repeated headers
- Write to files with Pathname
- Tempfile.create
- Rinda multicast support
- Easy setting of extra HTTP options for XMLRPC
- URI.encode_/decode_www_form updated to match WHATWG standard
- RbConfig::SIZEOF
- Can set facility with Syslog::Logger
- CSV.foreach with no block returns working enumerator
- OpenSSL bignum
- Enumerator.new size argument fixed to accept any callable object
- curses library removed
- TSort class methods
- TCP Fast Open