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