Sha256: 40c9d73c5cd312d92c898fbecf1a72e13dad67373a312623ef87fc4c713d33fc

Contents?: true

Size: 1.24 KB

Versions: 52

Compression:

Stored size: 1.24 KB

Contents

require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../fixtures/classes', __FILE__)
require File.expand_path('../fixtures/__method__', __FILE__)

# Can not, must not use a shared spec because #send influences
# __method__ on 1.8.7

describe "Kernel.__method__" do
  ruby_version_is '1.8.7' do
    it "returns the current method, even when aliased" do
      KernelSpecs::MethodTest.new.f.should == :f
    end

    it "returns the original name when aliased method" do
      KernelSpecs::MethodTest.new.g.should == :f
    end

    it "returns the caller from blocks too" do
      KernelSpecs::MethodTest.new.in_block.should == [:in_block, :in_block]
    end

    it "returns the caller from define_method too" do
      KernelSpecs::MethodTest.new.dm.should == :dm
    end

    it "returns the caller from block inside define_method too" do
      KernelSpecs::MethodTest.new.dm_block.should == [:dm_block, :dm_block]
    end

    it "returns method name even from eval" do
      KernelSpecs::MethodTest.new.from_eval.should == :from_eval
    end

    # crashes hard on 1.8.7-p174
    ruby_bug "unknown", "1.8.7.248" do
      it "returns nil when not called from a method" do
        __method__.should == nil
      end
    end
  end
end

Version data entries

52 entries across 52 versions & 2 rubygems

Version Path
rhodes-7.6.0 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-7.5.1 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-7.4.1 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-7.1.17 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-6.2.0 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-6.0.11 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.18 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.17 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.15 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.0.22 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.2 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.0.7 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.0.3 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-5.5.0 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
tauplatform-1.0.3 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
tauplatform-1.0.2 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
tauplatform-1.0.1 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-3.5.1.12 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-3.3.5 spec/framework_spec/app/spec/core/kernel/__method___spec.rb
rhodes-3.4.2 spec/framework_spec/app/spec/core/kernel/__method___spec.rb