New Features Even More Enhancement * New syntax and semantics o New syntax for lambdas o .() and calling Procs without #call/#[] o Multiple splats allowed o Mandatory arguments after optional arguments allowed o Arguments to #[] o printf-style formatted strings (%) o Newlines allowed before ternary colon * Kernel and Object o BasicObject o #instance_exec o Object#=~ o Object#tap o Kernel#instance_variable_defined? o Kernel#define_singleton_method o Kernel#singleton_methods, Kernel#methods * Class and Module o Module#const_defined?, #const_get and #method_defined? o Module#class_variable_defined? o #class_variable_{set,get} o Class of singleton classes o #module_exec * Binding#eval * Blocks and Procs o Arity of blocks without arguments o proc is now a synonym of Proc.new * Blocks and Procs o Proc#yield o Passing blocks to #[] o Proc#lambda? * Enumerable and Enumerator o Enumerable methods called without a block o Enumerable#cycle o Enumerable#each_with_index o Enumerable#first(n) o Enumerable#group_by o Enumerable#find_index o Enumerable#take o Enumerable#drop o Enumerator#each o Enumerable#inject (#reduce) without a block o Enumerable#count o Enumerable#reduce o Enumerator#with_index o Enumerable##min_by, #max_by o Enumerable#zip o Enumerable#minmax and minmax_by o Enumerator#rewind o Enumerator#next * Regexp#match, String#match o Regexp#match, String#match * Fiber: coroutines/micro-threads * Array o Block argument to Array#index, Array#rindex o Array#combination o Array#permutation o Array#product o Array#pop, Array#shift o Array#to_s is equivalent to Array#inspect o Array.try_convert * Hash o preserving item insertion order o Hash#_compare_by_identity and Hash#compare_by_identity? o Hash.try_convert * Integer o Integer#odd?, #even? o Integer#pred * Method o Method#receiver o Method#name o Method#owner * Numeric o Numeric#upto, #downto, #times, #step o Numeric#scalar?, Complex#scalar? o Numeric#div o Numeric#fdiv * Range o Range#cover? o Range#include? o Range#min, Range#max * Regexp o Regexp#=== matches symbols o Regexp.try_convert * String o String#clear o String#each_char o String#ord o String#partition, #rpartition o String#lines o String#bytes o String#encoding o String#force_encoding o String#start_with?, #end_with? o String#unpack with a block o String#hash o String#upto o String.try_convert * Symbol o Zero-length symbols allowed o Symbol#=== matches strings o Symbol#intern o Symbol#encoding o Symbol methods similar to those in String * Math o Math#log and Math#log2 * File and Dir operations o New methods * Process o Process.setrlimit o Process.daemon o Process.exec * Misc. new methods o GC.stress, GC.stress= o Method#hash, Proc#hash o __method__ and __callee__ o Symbol#to_proc