Skip to content

Instantly share code, notes, and snippets.

@hassox
Forked from atmos/gist:412585
Created May 25, 2010 00:18
Show Gist options
  • Save hassox/412595 to your computer and use it in GitHub Desktop.
Save hassox/412595 to your computer and use it in GitHub Desktop.
# What is the best way to get it to put out a, b, c
# without erroring about the superclass. The module
# inclusion order should not matter. In other words,
# I should be able to include A then B or B then A
# and either way all the letters a, b, and c are
# printed out (though not necessarily in that exact order)
module TopLevel
def foo(*args)
# do nothing
end
end
module A
def foo
super
puts 'a'
end
end
module B
def foo
super
puts 'b'
end
end
class C
include TopLevel
include A
include B
def foo
super
puts 'c'
end
end
C.new.foo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment