From what I understand, super keyword invokes a method with the same name as the current method in the superclass of the current class. Below in the autoload method, there is a call to super. I would like to know in which superclass I would find a method with the same name or what does the call to super do here
module ActiveSupport   module Autoload     ...           def autoload(const_name, path = @@at_path)       full = [self.name, @@under_path, const_name.to_s, path].compact.join("::")       location = path || Inflector.underscore(full)        if @@eager_autoload         @@autoloads[const_name] = location       end       super const_name, location     end    ....    end end  module ActiveRecord   extend ActiveSupport::Autoload   ...   autoload :TestCase   autoload :TestFixtures, 'active_record/fixtures' end   This code is from the rails master branch. Thanks much.
super keyword:module Vehicular   def move_forward(n)     @position += n   end end  class Vehicle   include Vehicular  # Adds Vehicular to the lookup path end  class Car < Vehicle   def move_forward(n)     puts "Vrooom!"     super            # Calls Vehicular#move_forward   end end   puts Car.ancestors.inspect  # Output # [Car, Vehicle, Vehicular, Object, Kernel, BasicObject]   Note the inclusion of the Vehicular Module object!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With