Skip to content

Instantly share code, notes, and snippets.

@paneq
Created July 1, 2012 18:22
Show Gist options
  • Save paneq/3029166 to your computer and use it in GitHub Desktop.
Save paneq/3029166 to your computer and use it in GitHub Desktop.
alias vs alias_method when used for class methods in ruby
# http://blog.bigbinary.com/2012/01/08/alias-vs-alias-method.html
class X
class << self
def skip
alias :scenario :skip_scenario
end
def scenario
puts "scenario"
end
def skip_scenario
puts "skipped scenario"
end
end
end
class Y < X
skip
end
class Z < X
end
X.scenario
Y.scenario
Z.scenario
class X
class << self
def skip
singleton_class.class_eval { alias_method :scenario, :skip_scenario }
end
def scenario
puts "scenario"
end
def skip_scenario
puts "skipped scenario"
end
end
end
class Y < X
skip
end
class Z < X
end
X.scenario
Y.scenario
Z.scenario
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment