Diese Frage bezieht sich direkt auf this one. Aber ich habe versucht, es auf das Basisproblem zu reduzieren, und ich wollte nicht noch mehr Text in das andere Fragefeld eingeben. Also hier gehts:So stellen Sie Klassenmethoden vor
Ich weiß, dass ich classmethods durch Erweiterung des Moduls ClassMethods und einschließlich es über den Modul # include Hook einschließen kann. Aber kann ich das gleiche mit Prepend machen? Hier ist mein Beispiel:
Klasse Foo:
class Foo
def self.bar
'Base Bar!'
end
end
Klasse Extensions:
module Extensions
module ClassMethods
def bar
'Extended Bar!'
end
end
def self.prepended(base)
base.extend(ClassMethods)
end
end
# prepend the extension
Foo.send(:prepend, Extensions)
Klasse FooE:
require './Foo'
class FooE < Foo
end
und ein einfaches Startscript:
require 'pry'
require './FooE'
require './Extensions'
puts FooE.bar
Wenn ich das Skript starte, bekomme ich Extended Bar!
nicht wie erwartet, sondern . Was muss ich ändern, um richtig zu funktionieren?
Very nice! Danke vielmals. Offensichtlich wusste ich nicht, wie weit das geht. – Nessuno
Großartig, danke ... – Fabio