Just saw some ruby code using the
alias method, and did a quick and routine google to find some examples of how it works, especially as compared to the
This blog post and some others recommend to use
alias and I’m going to agree, but for different reason: calling
alias looks weird to me.
This looks perfectly normal to me:
class Whatever def whatever "whatever" end alias_method :something, :whatever end Whatever.new.whatever #=> "whatever" Whatever.new.something #=> "whatever"
alias_method is a method that takes two arguments and they’re separated by commas. Under the hood I don’t know what it’s doing but that’s never stopped me from calling a method, and I know how to call a method.
This looks goofy to me:
class Whatever def whatever "whatever" end alias :something :whatever end Whatever.new.whatever #=> "whatever" Whatever.new.something #=> "whatever"
What even is that? It looks like we’re calling a method, but the arguments aren’t comma-separated… it feels weird.
I guess this probably isn’t a great reason to prefer one programming technique over another, but for me it’s harder to understand and therefore remember, and what I really like about Ruby is that it’s simple – almost everything is an object or a method, which follow some set of learnable rules.
alias_method is a method;
alias is a keyword, like
class and it can be even syntactically weirder:
class LowfatKefir def probiotic? true end alias tasty? probiotic? end LowfatKefir.new.tasty? #=> true
Not only do you not need to comma-separate the “arguments” to
alias, but they don’t have to be symbols either which feels like another violation of my understanding of how this language works, which is that we use symbols when we want to reference methods without invoking them, because referencing the method always invokes it.