######## CLASS #######
# A very simple class
class School
def initialize(name)
@name = name
end
end
##### INSTANCES #####
my_school = School.new("Brandeis")
my_school.class
your_school = School.new("Olin College")
##### INSTANCE VARIABLES #####
class School
attr_accessor :name, :rank
def initialize(name, rank)
@name = name
@rank = rank
end
def to_s
"#{@name} is ranked #{@rank}"
end
end
my_school = School.new("Brandeis", 30)
your_school = School.new("Olin", 50)
##### DUCK TYPING #####
my_school.to_s
puts "Inspecting my school: #{my_school.inspect}"
my_school.respond_to? :inspect
1.234.respond_to? :inspect
##########################
# Blocks are kind of like'anonymous methods'
numbers = [1, 20, 33, -1, 11]
numbers.sort
numbers.sample
numbers
puts "first example:"
numbers.each { |x| puts x}
puts "\nSecond example (the same!)"
numbers.each do
|x| puts x
end
numbers.map {|x| x * 1000}
numbers.reduce { |accum, val| accum + val }