Call overwritten method of included module?

Hi all

module MyModule
  def my_method
    return "my module rocks!"
  end
end

class MyClass
  include(MyModule)

  def my_method
    return "my class rocks!"
  end
end

Is there a way to call MyModule::my_method from within MyClass? "super"
sadly doesn't work...

Thanks a lot
Josh

···

--
Posted via http://www.ruby-forum.com/.

Perhaps this will do:

<code>
module MyModule
    def my_method
       "my module rocks!"
    end
end

class MyClass
    include MyModule
    alias module_method my_method
    def my_method
       "#{module_method}\nmy class rocks!"
    end
end

puts MyClass.new.my_method
</code>

<result>
my module rocks!
my class rocks!
</result>

Regards, Morton

···

On Nov 22, 2007, at 6:21 PM, Joshua Muheim wrote:

Hi all

module MyModule
  def my_method
    return "my module rocks!"
  end
end

class MyClass
  include(MyModule)

  def my_method
    return "my class rocks!"
  end
end

Is there a way to call MyModule::my_method from within MyClass? "super"
sadly doesn't work...

module MyModule
  def my_method
    return "my module rocks!"
  end
end

class MyClass
  include(MyModule)

  def my_method
    return "my class rocks!"
  end
end

Is there a way to call MyModule::my_method from within
MyClass? "super"
sadly doesn't work...

You'd need to alias the old method:

class MyClass
  include(MyModule)
  alias :old_my_method :my_method
  def my_method
    old_my_method
  end
end

(If you're using rails/activesupport, you'd probably use
alias_method_chain to simplify things)

Dan.

Hi all

module MyModule
  def my_method
    return "my module rocks!"
  end
end

class MyClass
  include(MyModule)

  def my_method
    return "my class rocks!"
  end
end

Is there a way to call MyModule::my_method from within MyClass? "super"
sadly doesn't work...

super shall work and indeed does
module MyModule
   def my_method
     return "my module rocks!"
   end
end

class MyClass
   include(MyModule)

   def my_method

     return [ super, "my class rocks!" ].join("\n")
   end
end

puts MyClass.new.my_method

HTH
Robert

···

On Nov 23, 2007 12:21 AM, Joshua Muheim <forum@josh.ch> wrote:

Thanks a lot
Josh
--
Posted via http://www.ruby-forum.com/\.

--
what do I think about Ruby?
http://ruby-smalltalk.blogspot.com/

(If you're using rails/activesupport, you'd probably use
alias_method_chain to simplify things)

Dan.

Thanks! Especially for the alias_method_chain hint! :slight_smile:

···

--
Posted via http://www.ruby-forum.com/\.