Whats new in Ruby 2.3
@h6165
Abhishek Yadav
ரூபீ ப்ரோக்ராமர்
Co-organizer: Chennai.rb
Whats new in Ruby 2.3
h = { a: 2,
      b: { x: 20, y: 30 },
      c: { m: { today: :me, tomorrow: :you },
           n:   :hello                     }}
h.dig(:c, :m, :today)  # => :me
h.dig(:a, :m, :today)  # => nil
       
    Hash#dig
Whats new in Ruby 2.3
A = Struct.new(:foo)
a = [A.new(20), nil].sample
## earlier
b = a && a.foo
## Now
b = a&.foo
    Lonely operator
(safe navigation operator)
Whats new in Ruby 2.3
h = { a: 2,
      b: { x: 20, y: 30 },
      c: { m: { today: :me, tomorrow: :you },
           n: "hello"  }
    }
h.fetch_values(:a, :b)  # => [2, {:x=>20, :y=>30}]
    Hash#fetch_values
Whats new in Ruby 2.3
Classy.new
NameError: uninitialized constant Classy
Did you mean?  Class
    did_you_mean?
Whats new in Ruby 2.3
list = ['Ruby', 'Elixir', 'Python']
list.grep(/y/)
list.grep_v(/y/)
    grep_v
Whats new in Ruby 2.3
h = { a: 2, b: 3, c: 4}
[:b, :c].map(&h)  #=> [2, 3]
    Hash#to_proc
Whats new in Ruby 2.3
# frozen_string_literal: true
str = 'hello'
str[0] = 'H'   #=> RuntimeError: can't modify frozen String
    frozen_string_literal
Whats new in Ruby 2.3
ISeq serialize objects
- 
Additions to RubyVM::InstructionSequence:
	
- 
		
RubyVM::InstructionSequence#to_binary_format - 
		
RubyVM::InstructionSequence.from_binary_format(data) 
 - 
		
 - 
	
Goal: machine dependent binaries:
- fast bootstrap time for big applications
 - reduce memory consumption with several techniques
 
 - 
Not:
	
- packing scripts to one package
 - to hide source code
 
 - Experimental currently. With security risks
 
Whats new in Ruby 2.3
Refs:
- http://nithinbekal.com/posts/ruby-2-3-features/
 - https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/
 - https://bugs.ruby-lang.org/issues/11788
 - https://docs.google.com/document/d/1D0Eo5N7NE_unIySOKG9lVj_eyXf66BQPM4PKp7NvMyQ/pub
 
@h6165
Abhishek Yadav
ரூபீ ப்ரோக்ராமர்
Co-organizer: Chennai.rb
Whats new in Ruby 2.3
By Abhishek Yadav
Whats new in Ruby 2.3
- 1,299