Slide 1

Slide 1 text

RUBY 2.0 What u in DOMAS BITVINSKAS domasbitvinskas.com @Nedomas

Slide 2

Slide 2 text

20 27.days.ago ruby can almost play poke lega y

Slide 3

Slide 3 text

Syntax sparkle Evolved monkeys PERFORMANCE booooost PR “100 hundred procent compatibl” - Matz

Slide 4

Slide 4 text

❤ = 'love' puts ❤ UTF-8 default encoding

Slide 5

Slide 5 text

class Integer def dalinasi_iš?(skaičius) skaičius != 0 ? self % skaičius == 0 : zero? end end puts 6.dalinasi_iš?(2)

Slide 6

Slide 6 text

kwargs

Slide 7

Slide 7 text

# ruby 1.9 def shout(opts={}) loud = opts[:loud] || 'Hello' quiet = opts[:quiet] || 'World' p "#{loud} #{quiet}!" end shout loud: "Old", quiet: "School" # ruby 2.0 def shout(loud: 'Hello', quiet: 'World') p "#{loud} #{quiet}!" end shout loud: "New", quiet: "School"

Slide 8

Slide 8 text

%i(an array of symbols) => [:an, :array, :of, :symbols] %I(#{100-50} shades of grey) => [:"50", :shades, :of, :grey] PRO-TIP

Slide 9

Slide 9 text

module Logger def log(msg) p msg end end class Logic include Logger def log(msg) p msg.reverse end end Module prepend

Slide 10

Slide 10 text

module Logger def log(msg) p msg end end class Logic prepend Logger def log(msg) p msg.reverse end end Logic.new.log("Some message") # "Some message" Logic.ancestors # include => [Logic, Logger, Object, Kernel, BasicObject] # prepend => [Logger, Logic, Object, Kernel, BasicObject] Module prepend

Slide 11

Slide 11 text

ENUMERATORS even_numbers = (1..10000).select(&:even?).map(&:to_s) even_numbers = (1..10000).inject([]) do |acc, number| if number.even? acc << number.to_s else acc end end for the lazy

Slide 12

Slide 12 text

ENUMERATORS even_numbers = (1..10000).lazy.select(&:even?).map(&:to_s) even_numbers = (1..10000).inject([]) do |acc, number| if number.even? acc << number.to_s else acc end end for the lazy

Slide 13

Slide 13 text

REFINEMENTS experimental module Fun refine Fixnum do def +(_) super - rand(3) end end end using Fun p 5 + 5

Slide 14

Slide 14 text

MAŽI GRAŽŪS DALYKAI

Slide 15

Slide 15 text

Drummer = Struct.new(:name, :age, :band) idol = Drummer.new("Carter Beauford", 55, "Dave Matthews Band") p idol # => # p idol.to_h # => {:name=>"Carter Beauford", :age=>55, :band=>"Dave Matthews Band"} .to_h

Slide 16

Slide 16 text

ONIGMO REGEX VARIKLIS "this\nis\vMr.\rNeo".gsub(/\R/, ' ')

Slide 17

Slide 17 text

Array Range #bsearch p [1, 2, 3, 6, 9, 15].bsearch {|i| i > 4 } p (1..10000000000000).bsearch {|i| i > 9 }

Slide 18

Slide 18 text

_ _di _ _

Slide 19

Slide 19 text

IMPROVE GARBAGE & STUFF! RubyGem 2.0 & RDoc 4.0

Slide 20

Slide 20 text

AČIŪ