summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/module/new_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/module/new_spec.rb')
-rw-r--r--spec/rubyspec/core/module/new_spec.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/rubyspec/core/module/new_spec.rb b/spec/rubyspec/core/module/new_spec.rb
new file mode 100644
index 0000000000..21d3f954fa
--- /dev/null
+++ b/spec/rubyspec/core/module/new_spec.rb
@@ -0,0 +1,31 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+require File.expand_path('../fixtures/classes', __FILE__)
+
+describe "Module.new" do
+ it "creates a new anonymous Module" do
+ Module.new.is_a?(Module).should == true
+ end
+
+ it "creates a new Module and passes it to the provided block" do
+ test_mod = nil
+ m = Module.new do |mod|
+ mod.should_not == nil
+ self.should == mod
+ test_mod = mod
+ mod.is_a?(Module).should == true
+ Object.new # trying to return something
+ end
+ test_mod.should == m
+ end
+
+ it "evaluates a passed block in the context of the module" do
+ fred = Module.new do
+ def hello() "hello" end
+ def bye() "bye" end
+ end
+
+ (o = mock('x')).extend(fred)
+ o.hello.should == "hello"
+ o.bye.should == "bye"
+ end
+end