Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@joefiorini
Created September 15, 2012 15:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joefiorini/3728490 to your computer and use it in GitHub Desktop.
Save joefiorini/3728490 to your computer and use it in GitHub Desktop.
MacRuby, inheritance and alias
###################################
### FAILING CASE
### This emulates the relationship
### defined in rake-pipeline.rb
### and rake-pipeline/matcher.rb
###################################
class Greeter
class SpanishGreeter < Greeter
def say_hola(name)
puts "Hola #{name}!"
end
end
end
class Greeter
def say_hello(name)
puts "Hello #{name}!"
end
alias say_hola say_hello
def greet(name)
say_hola name
end
end
puts "Greeter"
Greeter.new.greet "Joe"
# => "Hello Joe"
puts "En español"
Greeter::SpanishGreeter.new.greet "José" # <-- should print "Hola Joe!"
# => "Hello Joe"
###################################
### PASSING CASE
###################################
class Greeter
def say_hello(name)
puts "Hello #{name}!"
end
def say_hola(name); say_hello(name) end
def greet(name)
say_hola name
end
end
puts "Greeter"
Greeter.new.greet "Joe"
# => "Hello Joe"
puts "En español"
Greeter::SpanishGreeter.new.greet "José" # <-- should print "Hola José!"
# => "Hola José!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment