wewnętrzne duplikowanie metody w klasie

Kminie to już jakiś czas i nie mogę, więc wrzucam na forum:

Piszę moduł do Racka i potrzebuję umożliwić wewnętrzną duplikację elementów, ale równocześnie zablokować możliwość nadpisania tego zachowania. O co chodzi? Rack przy starcie tworzy obiekt(initialize), a potem tylko wielokrotnie wywołuje metodę call(env). W normalnych warunkach nie są potrzebne żadne sztuczki, ale jeśli chcemy posługiwać się zmiennymi instancyjnymi to, aby przy każdym wywoływaniu nie nadpisywać zmiennych z innych requestów, musimy zduplikować obiekt. Rack robi to zazwyczaj tak:

class A
def initialize(opts = {})
end

def call(env)
dup._call(env)
end

def _call(env)
[cokolwiek]
end
end

Problem pojawia się, gdy chcemy umożliwić dziedziczenie innych klas po tej. Jeśli klasa dziedzicząca nadpiszę metodę ‘call’ to jesteśmy w lesie. I tu pojawia się problem: czy wie ktoś w jaki sposób zagwarantować wywoływanie tej duplikacji? Próbowałem użyć aliasów, ale one są wywoływane przed dziedziczeniem, więc nic z tego. Jakieś pomysły?

http://scie.nti.st/2008/9/17/making-methods-immutable-in-ruby

Tu masz coś.

Dokładnie o to mi chodziło - method_added z nadpisaniem zmiennej. Thx