Sha256: 4f43d206000f80a68f9ad00fa8746d2e6a7e9cf674aadeb80e25591348ef9e98

Contents?: true

Size: 1.43 KB

Versions: 83

Compression:

Stored size: 1.43 KB

Contents

require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper'
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes'

describe "Kernel#method" do
  it "returns a method object for a valid method" do
    class KernelSpecs::Foo; def bar; 'done'; end; end
    KernelSpecs::Foo.new.method(:bar).class.should == Method
  end

  it "returns a method object for a valid singleton method" do
    class KernelSpecs::Foo; def self.bar; 'done'; end; end
    KernelSpecs::Foo.method(:bar).class.should == Method
  end

  it "raises a NameError for an invalid method name" do
    class KernelSpecs::Foo; def bar; 'done'; end; end
    lambda {
      KernelSpecs::Foo.new.method(:invalid_and_silly_method_name)
    }.should raise_error(NameError)
  end

  it "raises a NameError for an invalid singleton method name" do
    class KernelSpecs::Foo; def self.bar; 'done'; end; end
    lambda { KernelSpecs::Foo.method(:baz) }.should raise_error(NameError)
  end

  # This may be a bug; see http://redmine.ruby-lang.org/issues/show/1151
  ruby_version_is "" ... "1.9" do
    it "changes the method called for super on a target aliased method" do
      c1 = Class.new do
        def a; 'a'; end
        def b; 'b'; end
      end
      c2 = Class.new(c1) do
        def a; super; end
        alias b a
      end

      c2.new.a.should == 'a'
      c2.new.b.should == 'a'
      c2.new.method(:b).call.should == 'b'
    end
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
rhodes-3.1.1 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.1.0 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.2 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.0 spec/framework_spec/app/spec/core/kernel/method_spec.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/core/kernel/method_spec.rb