SlideShare a Scribd company logo
Ruby
                        Fun, Productive and Open-Source


                                        Eleanor McHugh
                                          @feyeleanor


Ruby: Fun, Productive and Open-Source                    http://slides.games-with-brains.net/
I am a programmer



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
please don’t be scared!!!



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
on today’s menu:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one




Ruby: Fun, Productive and Open-Source         http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer




Ruby: Fun, Productive and Open-Source         http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer

              first steps with the Ruby language




Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer

              first steps with the Ruby language

              building confidence




Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
on today’s menu:
              what is a programmer and how to become one

              sharing ideas with a computer

              first steps with the Ruby language

              building confidence

              sharing your creations as open-source


Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
a word of caution:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher

              in fact this is my first ever beginners’ session




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher

              in fact this is my first ever beginners’ session

              so if I’m not making sense please stop me




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
a word of caution:
              it’s 30+ years since I first started coding

              and I’m a hacker, not a teacher

              in fact this is my first ever beginners’ session

              so if I’m not making sense please stop me

              and don’t be afraid to ask questions


Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
spot the programmer



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative

              playful




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative

              playful

              attentive




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmers are:
              curious

              imaginative

              playful

              attentive

              persevering


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
they’re also human



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmer myths:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers

              but mostly we’re maths-savvy writers




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers

              but mostly we’re maths-savvy writers

              we build models of an alternative reality




Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
programmer myths:
              sometimes we really are wizards

              or über-cool hackers

              but mostly we’re maths-savvy writers

              we build models of an alternative reality

              then find words to describe these consistently


Ruby: Fun, Productive and Open-Source             http://slides.games-with-brains.net/
logic + language = code



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Elric sent his mind into twisting tunnels of logic, across
endless plains of ideas, through mountains of symbolism
  and endless universes of alternate truths; he sent his
mind out further and further and as it went he sent with
 it the words [...] words that few of his contemporaries
                                         would understand...


                  - Elric of Melniboné, Michael Moorcock



 Ruby: Fun, Productive and Open-Source                         http://slides.games-with-brains.net/
getting started



Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
1984



Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
2012



Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
writer’s block



Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
`Don't stand there chattering to yourself like that,' Humpty Dumpty said, looking at
her for the first time,' but tell me your name and your business.'
`My name is Alice, but -- '
`It's a stupid name enough!' Humpty Dumpty interrupted impatiently. `What does it
mean?'
`must a name mean something?' Alice asked doubtfully.
`Of course it must,' Humpty Dumpty said with a sort laugh: `my name means the
shape I am -- and a good handsome shape it is, too. With a name like your, you might
be any shape, almost.'


                                   Through the Looking Glass, Lewis Carroll




  Ruby: Fun, Productive and Open-Source                                   http://slides.games-with-brains.net/
`I don't know what you mean by "glory,"' Alice said.
Humpty Dumpty smiled contemptuously. `Of course you don't -- till I tell you. I
meant "there's a nice knock-down argument for you!"'
`But "glory" doesn't mean "a nice knock-down argument,"' Alice objected.
`When I use a word,' Humpty Dumpty said in rather a scornful tone, `it means just
what I choose it to mean -- neither more nor less.'
`The question is,' said Alice, `whether you can make words mean so many different
things.'
`The question is,' said Humpty Dumpty, `which is to be master - - that's all.'


                                   Through the Looking Glass, Lewis Carroll




  Ruby: Fun, Productive and Open-Source                                   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
introducing ruby:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively

              or programs can be loaded from plain text files




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively

              or programs can be loaded from plain text files

              it deals with ‘objects’ and their interactions




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
introducing ruby:
              ruby is an interpreted language

              it can be used interactively

              or programs can be loaded from plain text files

              it deals with ‘objects’ and their interactions

              and is designed to suit human sensibilities


Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
the ruby dialogues



Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
commentary



Ruby: Fun, Productive and Open-Source            http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
classification



Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
messages



Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
references



Ruby: Fun, Productive and Open-Source                http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
# The Greeter class
   class Greeter
     def initialize(name)
       @name = name.capitalize
     end
    
     def salute
       puts "Hello #{@name}!"
     end
   end
    
   # Create a new object
   g = Greeter.new("world")
    
   # Output "Hello World!"
   g.salute


Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
dependencies



Ruby: Fun, Productive and Open-Source      http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
collections



Ruby: Fun, Productive and Open-Source                 http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
require 'open-uri'


   class WikiPage
    def initialize(*name)
      @name = name.collect { |n| n.capitalize }.join("_")
    end


    def display
      puts open("http://en.wikipedia.org/wiki/#{@name}").read
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.display




Ruby: Fun, Productive and Open-Source                       http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
files



Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download()
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download()
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download()
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download())
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
class WikiPage
    def download
      open("http://en.wikipedia.org/wiki/#{@name}").read
    end


    def display
      puts download
    end


    def save
      File.open(@name + ".html", w) do |file|
        file.write(download)
      end
    end
   end


   WikiPage.new("ada", "lovelace").save
Ruby: Fun, Productive and Open-Source                      http://slides.games-with-brains.net/
page = WikiPage.new("ada", "lovelace")
   page.display
   page.save




Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
page = WikiPage.new("ada", "lovelace")
   page.display
   page.save




Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
page = WikiPage.new("ada", "lovelace")
   page.display
   page.save




Ruby: Fun, Productive and Open-Source       http://slides.games-with-brains.net/
properties



Ruby: Fun, Productive and Open-Source                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements # elements should be an Array e.g: ["Ada", "Lovelace"]
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
class WikiPage
    def initialize(*elements)
      self.name = *elements
    end


    def name= elements
      @name = elements.collect { |n| n.trim.capitalize }.join("_")
    end
   end


   page = WikiPage.new("ada", "lovelace")
   page.save
   page.name = "Grace", "Hopper"
   page.save




Ruby: Fun, Productive and Open-Source                                http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
reuse



Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
class WikiPage
    attr_reader :root


    def initialize(url)
      @root = url
    end


    def download
      open("#{@root}/#{@name}").read
    end
   end


   page = WikiPage.new "http://en.wikipedia.org/wiki"
   page.name = "ada", "lovelace"
   page.save
   page.name = "Grace", "Hopper"
   page.save
Ruby: Fun, Productive and Open-Source                   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
hackety hack:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor




Ruby: Fun, Productive and Open-Source          http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff

              and he only taught by fated appointment




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff

              and he only taught by fated appointment

              he wrote hackety hack for little coders




Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
hackety hack:
              once there was a freelance professor

              his name was _why? the lucky stiff

              and he only taught by fated appointment

              he wrote hackety hack for little coders

              and created shoes along the way


Ruby: Fun, Productive and Open-Source              http://slides.games-with-brains.net/
shoes:




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows

              designed for simple desktop applications




Ruby: Fun, Productive and Open-Source           http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows

              designed for simple desktop applications

              not a web app so no html, css or javascript




Ruby: Fun, Productive and Open-Source            http://slides.games-with-brains.net/
shoes:
              a self-contained GUI toolkit for Ruby

              which works on mac, linux and windows

              designed for simple desktop applications

              not a web app so no html, css or javascript

              but uses similar elements and concepts


Ruby: Fun, Productive and Open-Source            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
a shoes app



Ruby: Fun, Productive and Open-Source                 http://slides.games-with-brains.net/
Shoes.app do
   	    para "Hello, World!"
   end




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app do
   	    para "Hello, World!"
   end




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
        button "Download", :width => 120 do
        end
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
    background maroon
    para "Scrape Mediawiki", :align => "center", :size => "xx-large"
    stack do
      flow :margin => 10 do
        caption "Subject:"
        @article = edit_line :width => -200
        button "Download", :width => 120 do
        end
      end
    end
   end




Ruby: Fun, Productive and Open-Source                            http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
       @wiki = WikiPage.new "http://en.wikipedia.org/wiki"
       background maroon
       para "Scrape Mediawiki", :align => "center", :size => "xx-large"
       stack do
        flow :margin => 10 do
         caption "Subject:"
         @article = edit_line :width => -200
         button "Download", :width => 120 do
   	     	    @wiki.save
         end
        end
       end
   end




Ruby: Fun, Productive and Open-Source                               http://slides.games-with-brains.net/
Shoes.app :title => "Mediawiki Article Scraper" do
       @wiki = WikiPage.new "http://en.wikipedia.org/wiki"
       background maroon
       para "Scrape Mediawiki", :align => "center", :size => "xx-large"
       stack do
        flow :margin => 10 do
         caption "Subject:"
         @article = edit_line :width => -200
         button "Download", :width => 120 do
   	     	    @wiki.save
         end
        end
       end
   end




Ruby: Fun, Productive and Open-Source                               http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/
Covers Ruby 1.9.1




                                                                                                         David A. Black




                                                                                                           MANNING




                                          Practical
                                          Ruby Projects
                                          Ideas for the Eclectic Programmer

                                                        Learn advanced programming techniques and
                                                        explore Ruby’s full potential through a varied
                                                        series of exciting projects




                                          Topher Cyll




Ruby: Fun, Productive and Open-Source   http://slides.games-with-brains.net/

More Related Content

Ruby: Fun, Productive and Open Source

  • 1. Ruby Fun, Productive and Open-Source Eleanor McHugh @feyeleanor Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 2. I am a programmer Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 3. please don’t be scared!!! Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 4. on today’s menu: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 5. on today’s menu: what is a programmer and how to become one Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 6. on today’s menu: what is a programmer and how to become one sharing ideas with a computer Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 7. on today’s menu: what is a programmer and how to become one sharing ideas with a computer first steps with the Ruby language Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 8. on today’s menu: what is a programmer and how to become one sharing ideas with a computer first steps with the Ruby language building confidence Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 9. on today’s menu: what is a programmer and how to become one sharing ideas with a computer first steps with the Ruby language building confidence sharing your creations as open-source Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 10. a word of caution: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 11. a word of caution: it’s 30+ years since I first started coding Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 12. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 13. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher in fact this is my first ever beginners’ session Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 14. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher in fact this is my first ever beginners’ session so if I’m not making sense please stop me Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 15. a word of caution: it’s 30+ years since I first started coding and I’m a hacker, not a teacher in fact this is my first ever beginners’ session so if I’m not making sense please stop me and don’t be afraid to ask questions Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 16. spot the programmer Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 17. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 18. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 19. programmers are: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 20. programmers are: curious Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 21. programmers are: curious imaginative Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 22. programmers are: curious imaginative playful Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 23. programmers are: curious imaginative playful attentive Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 24. programmers are: curious imaginative playful attentive persevering Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 25. they’re also human Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 26. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 27. programmer myths: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 28. programmer myths: sometimes we really are wizards Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 29. programmer myths: sometimes we really are wizards or über-cool hackers Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 30. programmer myths: sometimes we really are wizards or über-cool hackers but mostly we’re maths-savvy writers Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 31. programmer myths: sometimes we really are wizards or über-cool hackers but mostly we’re maths-savvy writers we build models of an alternative reality Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 32. programmer myths: sometimes we really are wizards or über-cool hackers but mostly we’re maths-savvy writers we build models of an alternative reality then find words to describe these consistently Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 33. logic + language = code Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 34. Elric sent his mind into twisting tunnels of logic, across endless plains of ideas, through mountains of symbolism and endless universes of alternate truths; he sent his mind out further and further and as it went he sent with it the words [...] words that few of his contemporaries would understand... - Elric of Melniboné, Michael Moorcock Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 35. getting started Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 36. 1984 Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 37. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 38. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 39. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 40. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 41. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 42. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 43. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 44. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 45. 2012 Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 46. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 47. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 48. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 49. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 50. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 51. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 52. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 53. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 54. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 55. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 56. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 57. writer’s block Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 58. `Don't stand there chattering to yourself like that,' Humpty Dumpty said, looking at her for the first time,' but tell me your name and your business.' `My name is Alice, but -- ' `It's a stupid name enough!' Humpty Dumpty interrupted impatiently. `What does it mean?' `must a name mean something?' Alice asked doubtfully. `Of course it must,' Humpty Dumpty said with a sort laugh: `my name means the shape I am -- and a good handsome shape it is, too. With a name like your, you might be any shape, almost.' Through the Looking Glass, Lewis Carroll Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 59. `I don't know what you mean by "glory,"' Alice said. Humpty Dumpty smiled contemptuously. `Of course you don't -- till I tell you. I meant "there's a nice knock-down argument for you!"' `But "glory" doesn't mean "a nice knock-down argument,"' Alice objected. `When I use a word,' Humpty Dumpty said in rather a scornful tone, `it means just what I choose it to mean -- neither more nor less.' `The question is,' said Alice, `whether you can make words mean so many different things.' `The question is,' said Humpty Dumpty, `which is to be master - - that's all.' Through the Looking Glass, Lewis Carroll Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 60. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 61. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 62. introducing ruby: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 63. introducing ruby: ruby is an interpreted language Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 64. introducing ruby: ruby is an interpreted language it can be used interactively Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 65. introducing ruby: ruby is an interpreted language it can be used interactively or programs can be loaded from plain text files Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 66. introducing ruby: ruby is an interpreted language it can be used interactively or programs can be loaded from plain text files it deals with ‘objects’ and their interactions Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 67. introducing ruby: ruby is an interpreted language it can be used interactively or programs can be loaded from plain text files it deals with ‘objects’ and their interactions and is designed to suit human sensibilities Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 68. the ruby dialogues Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 69. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 70. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 71. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 72. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 73. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 74. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 75. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 76. commentary Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 77. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 78. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 79. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 80. classification Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 81. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 82. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 83. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 84. messages Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 85. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 86. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 87. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 88. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 89. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 90. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 91. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 92. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 93. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 94. references Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 95. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 96. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 97. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 98. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 99. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 100. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 101. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 102. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 103. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 104. # The Greeter class class Greeter   def initialize(name)     @name = name.capitalize   end     def salute     puts "Hello #{@name}!"   end end   # Create a new object g = Greeter.new("world")   # Output "Hello World!" g.salute Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 105. dependencies Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 106. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 107. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 108. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 109. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 110. collections Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 111. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 112. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 113. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 114. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 115. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 116. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 117. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 118. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 119. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 120. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 121. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 122. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 123. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 124. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 125. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 126. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 127. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 128. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 129. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 130. require 'open-uri' class WikiPage def initialize(*name) @name = name.collect { |n| n.capitalize }.join("_") end def display puts open("http://en.wikipedia.org/wiki/#{@name}").read end end page = WikiPage.new("ada", "lovelace") page.display Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 131. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 132. files Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 133. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download() end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 134. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download() end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 135. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download() end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 136. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 137. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download()) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 138. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 139. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 140. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 141. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 142. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 143. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 144. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 145. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 146. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 147. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 148. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 149. class WikiPage def download open("http://en.wikipedia.org/wiki/#{@name}").read end def display puts download end def save File.open(@name + ".html", w) do |file| file.write(download) end end end WikiPage.new("ada", "lovelace").save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 150. page = WikiPage.new("ada", "lovelace") page.display page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 151. page = WikiPage.new("ada", "lovelace") page.display page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 152. page = WikiPage.new("ada", "lovelace") page.display page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 153. properties Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 154. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 155. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 156. class WikiPage def initialize(*elements) self.name = *elements end def name= elements # elements should be an Array e.g: ["Ada", "Lovelace"] @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 157. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 158. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 159. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 160. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 161. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 162. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 163. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 164. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 165. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 166. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 167. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 168. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 169. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 170. class WikiPage def initialize(*elements) self.name = *elements end def name= elements @name = elements.collect { |n| n.trim.capitalize }.join("_") end end page = WikiPage.new("ada", "lovelace") page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 171. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 172. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 173. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 174. reuse Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 175. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 176. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 177. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 178. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 179. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 180. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 181. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 182. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 183. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 184. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 185. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 186. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 187. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 188. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 189. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 190. class WikiPage attr_reader :root def initialize(url) @root = url end def download open("#{@root}/#{@name}").read end end page = WikiPage.new "http://en.wikipedia.org/wiki" page.name = "ada", "lovelace" page.save page.name = "Grace", "Hopper" page.save Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 191. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 192. hackety hack: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 193. hackety hack: once there was a freelance professor Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 194. hackety hack: once there was a freelance professor his name was _why? the lucky stiff Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 195. hackety hack: once there was a freelance professor his name was _why? the lucky stiff and he only taught by fated appointment Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 196. hackety hack: once there was a freelance professor his name was _why? the lucky stiff and he only taught by fated appointment he wrote hackety hack for little coders Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 197. hackety hack: once there was a freelance professor his name was _why? the lucky stiff and he only taught by fated appointment he wrote hackety hack for little coders and created shoes along the way Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 198. shoes: Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 199. shoes: a self-contained GUI toolkit for Ruby Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 200. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 201. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows designed for simple desktop applications Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 202. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows designed for simple desktop applications not a web app so no html, css or javascript Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 203. shoes: a self-contained GUI toolkit for Ruby which works on mac, linux and windows designed for simple desktop applications not a web app so no html, css or javascript but uses similar elements and concepts Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 204. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 205. a shoes app Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 206. Shoes.app do para "Hello, World!" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 207. Shoes.app do para "Hello, World!" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 208. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 209. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 210. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 211. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 212. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 213. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 214. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 215. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 216. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 217. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 218. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 219. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 220. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 221. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 222. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 223. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 224. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 225. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 226. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 227. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 228. Shoes.app :title => "Mediawiki Article Scraper" do background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 229. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 230. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 231. Shoes.app :title => "Mediawiki Article Scraper" do @wiki = WikiPage.new "http://en.wikipedia.org/wiki" background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do @wiki.save end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 232. Shoes.app :title => "Mediawiki Article Scraper" do @wiki = WikiPage.new "http://en.wikipedia.org/wiki" background maroon para "Scrape Mediawiki", :align => "center", :size => "xx-large" stack do flow :margin => 10 do caption "Subject:" @article = edit_line :width => -200 button "Download", :width => 120 do @wiki.save end end end end Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 233. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 234. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 235. Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/
  • 236. Covers Ruby 1.9.1 David A. Black MANNING Practical Ruby Projects Ideas for the Eclectic Programmer Learn advanced programming techniques and explore Ruby’s full potential through a varied series of exciting projects Topher Cyll Ruby: Fun, Productive and Open-Source http://slides.games-with-brains.net/

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n
  197. \n
  198. \n
  199. \n
  200. \n
  201. \n
  202. \n
  203. \n
  204. \n
  205. \n
  206. \n
  207. \n
  208. \n
  209. \n
  210. \n
  211. \n
  212. \n
  213. \n
  214. \n
  215. \n
  216. \n
  217. \n
  218. \n
  219. \n
  220. \n
  221. \n
  222. \n
  223. \n
  224. \n
  225. \n
  226. \n
  227. \n
  228. \n
  229. \n