The document appears to be a slide presentation on Ruby programming. It introduces Ruby as an interpreted, object-oriented language that is interactive and deals with objects and their interactions. It then provides an example Ruby class called Greeter that takes a name as a parameter, capitalizes it, and outputs a greeting message. This demonstrates how Ruby uses classes and objects to represent real-world things and their behaviors through methods.
Report
Share
Report
Share
1 of 236
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/