Slide 1

Slide 1 text

Making Ruby Do Things How to force Ruby into submission Wednesday, September 19, 12

Slide 2

Slide 2 text

What is Ruby? • Ruby is a dynamic, reflective, general- purpose object-oriented programming language... • A dynamic, open source programming language with a focus on simplicity and productivity. Wednesday, September 19, 12

Slide 3

Slide 3 text

class Person def say something puts something end end # Create a person object ryan = Person.new # Have Ryan say hello! ryan.say 'Hello there!' Wednesday, September 19, 12

Slide 4

Slide 4 text

Mac Open Terminal.app Window Do a thing? Web http://tryruby.org Want to play along? Wednesday, September 19, 12

Slide 5

Slide 5 text

Wednesday, September 19, 12

Slide 6

Slide 6 text

The Basics Wednesday, September 19, 12

Slide 7

Slide 7 text

Rule #1 Everything is an object Wednesday, September 19, 12

Slide 8

Slide 8 text

Basic Data Types and Structures String "Hello World" Integer 100 Range 1..50 Array [1, 2, 3] Hash { :ruby => 'neat', :javascript => 'rad' } Regexp /\d{3}/ Wednesday, September 19, 12

Slide 9

Slide 9 text

Strings and Integers name = 'Ryan' # Comparing numbers (in a hash, by the way) hours[:xbox] = 473 hours[:worked] = 3 hours[:xbox] > hours[:worked] => true Wednesday, September 19, 12

Slide 10

Slide 10 text

Wednesday, September 19, 12

Slide 11

Slide 11 text

Arrays people = [ 'Kirk', 'Andy', 'Jamie' ] people[2] => 'Jamie' 0 1 2 Wednesday, September 19, 12

Slide 12

Slide 12 text

Hashes skillz = { ryan: [ 'Ruby on Rails', 'HTML5' ], bob: [ 'Illustrator', 'Photoshop' ] } skillz[:ryan][0] => Ruby on Rails Wednesday, September 19, 12

Slide 13

Slide 13 text

Ranges beers = (2..10) beers.each do |count| puts case count when 2..3 then "#{count} beers? No problem!" when 4..7 then "Approaching dangerous territory." when 8..10 then "Seriously?? #{count} beers?" end end => 2 beers? No problem! => 3 beers? No problem! => Approaching dangerous territory. => ... Wednesday, September 19, 12

Slide 14

Slide 14 text

Control Structures if condition # do something elsif condition # do something else # do something end case myvar when foo then "Hello!" when baz then "Good bye" end while condition # do something end Wednesday, September 19, 12

Slide 15

Slide 15 text

Classes and Methods A little hot object-oriented action Wednesday, September 19, 12

Slide 16

Slide 16 text

There are all kinds of objects Wednesday, September 19, 12

Slide 17

Slide 17 text

Methods def greet(name) puts "Hello, #{name}!" end Wednesday, September 19, 12

Slide 18

Slide 18 text

Classes class Human def greet(name) puts "Hello, #{name}!" end end Wednesday, September 19, 12

Slide 19

Slide 19 text

Putting it all together class Human def greet(name) puts "Hello, #{name}!" end end human = Human.new human.greet('Ryan') Wednesday, September 19, 12

Slide 20

Slide 20 text

Stop. Demo time! cylen.cc/F47w Wednesday, September 19, 12

Slide 21

Slide 21 text

Thanks! • Ryan L. Cross • Twitter: @slant • Github: github.com/cylence • The Enclave: enclavecoop.com • ExtendedZombieSlayer2000 cylen.cc/F4vy Wednesday, September 19, 12