По сути, extend_object
- это метод, который выполняет расширение.Вы можете переопределить его, например, для создания проверки типов перед расширением:
module Foo
def self.extend_object(obj)
raise(TypeError, "No strings!") if obj.is_a?(String)
super # need to call super or object
# won't be extended
end
def self.extended(obj)
puts "#{obj.inspect} was extended with #{self}"
end
end
1.extend(Foo)
"1".extend(Foo) # raises TypeError: No strings!