Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
RUBY BY EXAMPLE
Slide 2
Slide 2 text
Ruby is... interpreted object oriented dynamic
Slide 3
Slide 3 text
Ruby is... productive intuitive popular
Slide 4
Slide 4 text
VARIABLES & TYPES
Slide 5
Slide 5 text
Before we begin... a.+(b) a.is_valid? a.decrement!
Slide 6
Slide 6 text
$counter @@counter @counter counter Global Class Instance Local
Slide 7
Slide 7 text
‘hello’ ‘’‘hello’’’ %q{hello} String Herestring Perl-inspired
Slide 8
Slide 8 text
a = ‘James’ b = “Hello #{a}” puts b => “Hello James”
Slide 9
Slide 9 text
:hello Symbol
Slide 10
Slide 10 text
puts <
Slide 11
Slide 11 text
[1,2,3] {:a=>1, :b=>2} {a: 1, b: 2} 0..10 Array Hash (1.8) Hash (1.9) Ranges
Slide 12
Slide 12 text
METHODS
Slide 13
Slide 13 text
def greet(name) “Hello, #{name}” end greet “James”
Slide 14
Slide 14 text
def greet(name=“World”) “Hello, #{name}” end greet “James” greet
Slide 15
Slide 15 text
CONTROL FLOW
Slide 16
Slide 16 text
if rating >= 4 puts "great" elsif rating == 3 puts "alright" else puts "sucks" end
Slide 17
Slide 17 text
unless rating == 5 puts “Try harder” end
Slide 18
Slide 18 text
puts “Try harder” unless rating == 5 puts “Seriously” if rating == 1
Slide 19
Slide 19 text
case rating when 4..5 puts "great" when 3 puts "alright" else puts "sucks" end
Slide 20
Slide 20 text
while !le.has_more_lines? puts !le.next_line end puts !le.next_line while !le.has_more_lines?
Slide 21
Slide 21 text
until !le.end_of_!le? puts !le.next_line end puts !le.next_line until !le.end_of_!le?
Slide 22
Slide 22 text
for i in 0...!le.line_count puts !le.lines[i] end
Slide 23
Slide 23 text
BLOCKS
Slide 24
Slide 24 text
[1,2,3,4].each do |i| puts i end
Slide 25
Slide 25 text
array.each(&block)
Slide 26
Slide 26 text
printer = Proc.new do |i| puts i end [1,2,3,4].each &printer
Slide 27
Slide 27 text
printer = lambda { |i| puts i }
Slide 28
Slide 28 text
def loggerWrapper puts "Executing Method" yield puts "Done Executing" end loggerWrapper { puts "Weeee!" }
Slide 29
Slide 29 text
COLLECTIONS
Slide 30
Slide 30 text
Array/Enumerable Operations 109 Hash Operations 50
Slide 31
Slide 31 text
[1,2,3,4,5].map { |i| i +1} [1,2,3,4,5].reduce { |i, j| i + j } ({a: '1'}).merge({b: '2'})
Slide 32
Slide 32 text
CLASSES
Slide 33
Slide 33 text
class Person def initialize(name, age) @name,@age = name,age end end person = Person.new("James", 32)
Slide 34
Slide 34 text
class Person attr_accessor :name attr_accessor :age ... end p = Person.new("James", 32) puts p.name, p.age
Slide 35
Slide 35 text
class Person ... end class Hero < Person attr_accessor :powers end p = Hero.new("James", 32) p.powers = [“Flying”]
Slide 36
Slide 36 text
MODULES & MIXINS
Slide 37
Slide 37 text
module StrUtils def self.salt(pass, slt) “#{pass}#{salt}” end def salt(slt) StrUtils::salt(@value, slt) end end
Slide 38
Slide 38 text
StrUtils::salt("123", "456")
Slide 39
Slide 39 text
class Password include Utils def initialize(value) @value = value end end Password.new("test").salt
Slide 40
Slide 40 text
TOOLS OF THE TRADE
Slide 41
Slide 41 text
irb Interactive shell ruby Ruby interpreter gem Library manager rake Build tool rails Web framework
Slide 42
Slide 42 text
RUBY BY EXAMPLE