Ruby Examples of Classes


#### 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 }