Don’t know if i should write this to rails or ruby mailinglist. But in
the
case i wan’t to extend the facebooker-plugin without touching it, i will
here.
- Instance-Methods of modules?
The methods in a module may be instance methods or module methods.
Instance
methods appear as methods in a class when the module is included, module
methods do not. Conversely, module methods may be called without
creating an
encapsulating object, while instance methods may not. (See
Module#module_function)
The method which i wan’t to alias in this case is a method which is
listed,
when i call:
puts Facebooker::Rails::Helpers.instance_methods
And it’s not listed, when i call:
puts Facebooker::Rails::Helpers.methods
- What I wanna do?
I wan’t to extend facebooker with tracking-functionality for our
company.
For this, i want to write an second plugin which is loaded after it
(beginning with a letter higher then F).
In this plugin i wan’t to alias the methods from facebooker like
alias_method :fb_multi_friend_selector_without_awesome,
:fb_multi_friend_selector
And write a new method which do the tracking and call the old
Why can’t i do this with:
module Facebooker
module Rails
module Helpers
alias :fb_multi_friend_selector_without_awesome
:fb_multi_friend_selector
end
end
end
This should just be a normal plain method!!
This don’t work too:
module Facebooker
module Rails
module Helpers
class << self
alias :fb_multi_friend_selector_without_awesome
:fb_multi_friend_selector
end
end
end
end
It seems this possibility just works when there are module-methods.
I have tried the following things, but none of this works (for me):
Facebooker::Rails::Helpers::InstanceMethods.module_eval do
alias_method :fb_multi_friend_selector_without_awesome,
:fb_multi_friend_selector
end
(Don’t work because there are no Instance of the Module … )
Theoretically i can Use the Name of the Class which included the model
to
extend it this way. But for me, without any experience on developing on
rails itself it would be easier if i can extend the classes and modules
which are only defined in the facebooker-plugin.
Greetings from Germany,
Klaus
Regards
kb