Skip to content

Instantly share code, notes, and snippets.

@srinidhi-lwt
Last active June 10, 2019 20:11
Show Gist options
  • Save srinidhi-lwt/437810c24ba49480c36bbad8464b9025 to your computer and use it in GitHub Desktop.
Save srinidhi-lwt/437810c24ba49480c36bbad8464b9025 to your computer and use it in GitHub Desktop.
Ruby Method Hierarchy
module Developer
def name
puts "Hi. This is Developer"
end
end
module Analyst
def name
puts "Hi. This is Analyst"
end
end
class Employee
include Analyst
prepend Developer
def name
puts "Hi. This is Employee"
end
end
e = Employee.new
e.name
=> 'Hi. This is Developer'
e.class.ancestors
=> [Developer, Employee, Analyst, Object, Kernel, BasicObject]
################################################
module Developer
def name
puts "Hi. This is Developer"
super
end
end
module Analyst
def name
puts "Hi. This is Analyst"
end
end
class Employee
include Analyst
prepend Developer
def name
puts "Hi. This is Employee"
super
end
end
e = Employee.new
e.name
=> 'Hi. This is Developer'
'Hi. This is Employee'
'Hi. This is Analyst'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment