1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../fixtures/classes', __FILE__)
describe "Module#included" do
it "is invoked when self is included in another module or class" do
begin
m = Module.new do
def self.included(o)
$included_by = o
end
end
c = Class.new { include m }
$included_by.should == c
ensure
$included_by = nil
end
end
it "allows extending self with the object into which it is being included" do
m = Module.new do
def self.included(o)
o.extend(self)
end
def test
:passed
end
end
c = Class.new{ include(m) }
c.test.should == :passed
end
ruby_version_is ""..."1.9" do
it "is private in its default implementation" do
Module.new.private_methods.should include("included")
end
end
ruby_version_is "1.9" do
it "is private in its default implementation" do
Module.new.private_methods.should include(:included)
end
end
end
|