Accessing base method

It's not pretty, but:

[snip]

Though, of course, you can make it prettier by making it re-usable:

class Object
  def supercall( method_name, *args )
    self.class.superclass.instance_method( method_name ).bind( self
).call( *args )
  end
end

class Parent
  def knox
    puts 'parent'
  end
end

class Child < Parent
  def knox
    puts 'child'
  end
  def test
    supercall( :knox )
  end
end

···

From: Gavin Kistner