1require_relative '../../spec_helper'
2require_relative 'fixtures/__method__'
3
4describe "Kernel.__method__" do
5  it "returns the current method, even when aliased" do
6    KernelSpecs::MethodTest.new.f.should == :f
7  end
8
9  it "returns the original name when aliased method" do
10    KernelSpecs::MethodTest.new.g.should == :f
11  end
12
13  it "returns the caller from blocks too" do
14    KernelSpecs::MethodTest.new.in_block.should == [:in_block, :in_block]
15  end
16
17  it "returns the caller from define_method too" do
18    KernelSpecs::MethodTest.new.dm.should == :dm
19  end
20
21  it "returns the caller from block inside define_method too" do
22    KernelSpecs::MethodTest.new.dm_block.should == [:dm_block, :dm_block]
23  end
24
25  it "returns method name even from send" do
26    KernelSpecs::MethodTest.new.from_send.should == :from_send
27  end
28
29  it "returns method name even from eval" do
30    KernelSpecs::MethodTest.new.from_eval.should == :from_eval
31  end
32
33  it "returns nil from inside a class body" do
34    KernelSpecs::MethodTest.new.from_class_body.should == nil
35  end
36
37  it "returns nil when not called from a method" do
38    __method__.should == nil
39  end
40end
41