Slide 1

Slide 1 text

BUILD MORE GEMS

Slide 2

Slide 2 text

Phil Nash @philnash http:/ /philna.sh philnash@twilio.com

Slide 3

Slide 3 text

WE HAVE A PROBLEM

Slide 4

Slide 4 text

RUBY ISN'T COOL ANYMORE

Slide 5

Slide 5 text

WHY?

Slide 6

Slide 6 text

THE NUMBERS AREN'T GOING UP ENOUGH

Slide 7

Slide 7 text

NODE.JS

Slide 8

Slide 8 text

NPM

Slide 9

Slide 9 text

NPM IS MAKING US LOOK BAD

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

The numbers Ruby Node.js Packages 115,566 250,796 Downloads 7,691,140,671 3,787,604,159 in the last month

Slide 12

Slide 12 text

WE KNOW WHY THOUGH

Slide 13

Slide 13 text

r e q u i r e ( " i s - e v e n " ) ;

Slide 14

Slide 14 text

r e q u i r e ( " i s - o d d " ) ; r e q u i r e ( " i s - n u m b e r " ) ;

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

WHO'S BUILT A GEM BEFORE?

Slide 17

Slide 17 text

LET'S BUILD ONE NOW!

Slide 18

Slide 18 text

Generate a gem $ b u n d l e g e m i s _ e v e n

Slide 19

Slide 19 text

Write the code # l i b / i s _ e v e n . r b r e q u i r e " i s _ e v e n / v e r s i o n " m o d u l e I s E v e n d e f s e l f . w e l l _ i s _ i t ? ( n u m b e r ) n u m b e r . e v e n ? e n d e n d 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 0 7 . 0 8 .

Slide 20

Slide 20 text

Update the gemspec s p e c . s u m m a r y = " T e l l s y o u i f a n u m b e r i s e v e n " s p e c . d e s c r i p t i o n = " T e l l s y o u i f a n u m b e r i s e v e n " s p e c . h o m e p a g e = " h t t p : / / p h i l n a . s h " 0 1 . 0 2 . 0 3 .

Slide 21

Slide 21 text

Update the gemspec 2 We're pushing to Rubygems, so remove the a l l o w e d _ p u s h _ h o s t metadata i f s p e c . r e s p o n d _ t o ? ( : m e t a d a t a ) s p e c . m e t a d a t a [ ' a l l o w e d _ p u s h _ h o s t ' ] = " T O D O : S e t t o ' h t t p : / / m y e l s e r a i s e " R u b y G e m s 2 . 0 o r n e w e r i s r e q u i r e d t o p r o t e c t a g a i n s t p e n d 0 1 . 0 2 . 0 3 . 0 4 . 0 5 .

Slide 22

Slide 22 text

Release the gem $ g e m b u i l d i s _ e v e n . g e m s p e c $ g e m p u s h i s _ e v e n - 0 . 1 . 0 . g e m

Slide 23

Slide 23 text

But seriously • Building my first gem helped me learn Ruby

Slide 24

Slide 24 text

bitly

Slide 25

Slide 25 text

But seriously • Building my first gem helped me learn Ruby • Extracting gems from apps reduced repetition

Slide 26

Slide 26 text

envyable

Slide 27

Slide 27 text

But seriously • Building my first gem helped me learn Ruby • Extracting gems from apps reduced repetition • Creating new gems helped developers use Twilio

Slide 28

Slide 28 text

twiml_template

Slide 29

Slide 29 text

BUILD MORE GEMS!

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

Disclaimer I'm not really advocating for the creation of loads of crap gems. Make useful gems, make gems you'd want to use, write tests. No Node.js developers were hurt in the making of this presentation. No Node.js modules were hurt in the making of this presentation. Well, maybe some Node.js modules' feelings were hurt, but they will recover. Ruby is awesome. You are all awesome.

Slide 32

Slide 32 text

Thanks! @philnash http:/ /philna.sh philnash@twilio.com