Comment utiliser des méthodes provenant de deux espaces de noms différents?Utilisation de méthodes provenant de deux étendues différentes?
class Bar
def self.configure &block
new.instance_eval &block
end
def method2
puts "from Bar"
end
end
class Foo
def method1
puts "from Foo"
end
def start
Bar.configure do
method1
method2
end
end
end
Foo.new.start
Dans l'exemple ci-dessus method1 ne peut pas être appelé parce qu'il est pas du champ d'application de la barre. Comment puis-je rendre les méthodes des deux domaines appelables en même temps?
+1 pour l'astuce context.send. Est-ce que cela continuera à fonctionner si Bar a aussi une méthode1? – Sudhanshu
@Sudhanshu, oui, mais 'method1' dans' Bar' aura la priorité – horseyguy