Slide 1

Slide 1 text

Threads

Slide 2

Slide 2 text

thread gem by @meh

Slide 3

Slide 3 text

Thread#every

Slide 4

Slide 4 text

do something every n seconds

Slide 5

Slide 5 text

lets implement something relevant

Slide 6

Slide 6 text

class Life! ! def self.why?! ! ! sleep(rand(5))! ! ! raise "" unless give_answer?! ! ! "answer: #{rand(42)}"! ! end! ! ! def self.give_answer?! ! ! rand(2) > 0 ? true : false! ! end! ! end

Slide 7

Slide 7 text

class Life! ! def self.why?! ! ! sleep(rand(5))! ! ! raise "" unless give_answer?! ! ! "answer: #{rand(42)}"! ! end! ! ! def self.give_answer?! ! ! rand(2) > 0 ? true : false! ! end! ! end

Slide 8

Slide 8 text

class Life! ! def self.why?! ! ! sleep(rand(5))! ! ! raise "" unless give_answer?! ! ! "answer: #{rand(42)}"! ! end! ! ! def self.give_answer?! ! ! rand(2) > 0 ? true : false! ! end! ! end

Slide 9

Slide 9 text

Life.why?! !

Slide 10

Slide 10 text

Life.why?! # …waiting…!

Slide 11

Slide 11 text

Life.why?! # …waiting…! # RuntimeError:

Slide 12

Slide 12 text

relaxed life

Slide 13

Slide 13 text

accept nil! as an answer!

Slide 14

Slide 14 text

class RelaxedLife! ! def self.why?! @every ||= Thread.every(60) do! Life.why?! end! @every.gimme_value! || "go have fun"! end! ! end

Slide 15

Slide 15 text

class RelaxedLife! ! def self.why?! @every ||= Thread.every(60) do! Life.why?! end! @every.gimme_value! || "go have fun"! end! ! end

Slide 16

Slide 16 text

require "thread/every"! ! class Thread::Every! ! def gimme_value!! @mutex.synchronize do! @old = true! @value! end! end! ! end

Slide 17

Slide 17 text

require "thread/every"! ! class Thread::Every! ! def gimme_value!! @mutex.synchronize do! @old = true! @value! end! end! ! end

Slide 18

Slide 18 text

require "thread/every"! ! class Thread::Every! ! def gimme_value!! @mutex.synchronize do! @old = true! @value! end! end! ! end

Slide 19

Slide 19 text

RelaxedLife.why?!

Slide 20

Slide 20 text

RelaxedLife.why?! # …waiting…!

Slide 21

Slide 21 text

RelaxedLife.why?! # …waiting…! # => "go have fun"!

Slide 22

Slide 22 text

RelaxedLife.why?! # …waiting…! # => "go have fun"! RelaxedLife.why?! # => 8!

Slide 23

Slide 23 text

RelaxedLife.why?! # …waiting…! # => "go have fun"! RelaxedLife.why?! # => 8! RelaxedLife.why?! # => 8!

Slide 24

Slide 24 text

RelaxedLife.why?! # …waiting…! # => "go have fun"! RelaxedLife.why?! # => 8! RelaxedLife.why?! # => 8! RelaxedLife.why?! # => 41!

Slide 25

Slide 25 text

RelaxedLife.why?! # …waiting…! # => "go have fun"! RelaxedLife.why?! # => 8! RelaxedLife.why?! # => 8! RelaxedLife.why?! # => 41! RelaxedLife.why?! # …

Slide 26

Slide 26 text

now go on and live

Slide 27

Slide 27 text

a relaxed life

Slide 28

Slide 28 text

Lukas @Overbryd

Slide 29

Slide 29 text

thread gem by @meh