2018-03-04 10:09:32 -05:00
|
|
|
require_relative '../../spec_helper'
|
|
|
|
require_relative 'fixtures/classes'
|
2017-05-07 08:04:49 -04:00
|
|
|
|
|
|
|
describe "Module#extended" do
|
|
|
|
it "is called when an object gets extended with self" do
|
|
|
|
begin
|
|
|
|
m = Module.new do
|
|
|
|
def self.extended(o)
|
|
|
|
$extended_object = o
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
(o = mock('x')).extend(m)
|
|
|
|
|
|
|
|
$extended_object.should == o
|
|
|
|
ensure
|
|
|
|
$extended_object = nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "is called after Module#extend_object" do
|
|
|
|
begin
|
|
|
|
m = Module.new do
|
|
|
|
def self.extend_object(o)
|
|
|
|
$extended_object = nil
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.extended(o)
|
|
|
|
$extended_object = o
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
(o = mock('x')).extend(m)
|
|
|
|
|
|
|
|
$extended_object.should == o
|
|
|
|
ensure
|
|
|
|
$extended_object = nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "is private in its default implementation" do
|
|
|
|
Module.new.private_methods.should include(:extended)
|
|
|
|
end
|
|
|
|
end
|