Sha256: 9146b1042a22ed93fa9738fbe5220d6817f3045b426dd17e1149a94c30bd1347

Contents?: true

Size: 1.22 KB

Versions: 25

Compression:

Stored size: 1.22 KB

Contents

require 'spec_helper'

module ModuleNameSpec
  module A
    class B
    end
  end
end

describe "Module#name" do
  it "should return the class name for boot types" do
    BasicObject.name.should == "BasicObject"
    Object.name.should == "Object"
    Class.name.should == "Class"
    Module.name.should == "Module"
  end

  it "should return class name for bridged classes" do
    Array.name.should == "Array"
  end

  it "should return name for modules and classes" do
    Enumerator.name.should == "Enumerator"
    Enumerable.name.should == "Enumerable"
  end

  it "should return nil for anonymous class" do
    Class.new.name.should == nil
  end

  it "should join nested classes using '::'" do
    ModuleNameSpec::A.name.should == "ModuleNameSpec::A"
    ModuleNameSpec::A::B.name.should == "ModuleNameSpec::A::B"
  end

  it "uses just child name when class set inside anonymous parent" do
    a = Class.new
    b = Class.new
    a.const_set :Child, b
    b.name.should == "Child"
  end

  it "uses parent name once parent anonymous class gets name" do
    a = Class.new
    b = Class.new
    a.const_set :Child, b
    b.name.should == "Child"

    ModuleNameSpec.const_set :Parent, a
    b.name.should == "ModuleNameSpec::Parent::Child"
  end
end

Version data entries

25 entries across 25 versions & 3 rubygems

Version Path
opal-0.8.1 spec/opal/core/module/name_spec.rb
opal-0.8.1.rc1 spec/opal/core/module/name_spec.rb
opal-wedge-0.9.0.dev spec/opal/core/module/name_spec.rb
opal-0.8.0 spec/opal/core/module/name_spec.rb
opal-0.8.0.rc3 spec/opal/core/module/name_spec.rb
opal-0.8.0.rc2 spec/opal/core/module/name_spec.rb
opal-0.8.0.rc1 spec/opal/core/module/name_spec.rb
opal-0.8.0.beta1 spec/opal/core/module/name_spec.rb
opal-0.7.2 spec/opal/core/module/name_spec.rb
opal-0.7.1 spec/opal/core/module/name_spec.rb
opal-0.7.0 spec/opal/core/module/name_spec.rb
opal-0.7.0.rc1 spec/opal/core/module/name_spec.rb
opal-0.7.0.beta3 spec/opal/core/module/name_spec.rb
opal-0.6.3 spec/opal/core/module/name_spec.rb
opal-0.7.0.beta2 spec/opal/core/module/name_spec.rb
opal-cj-0.7.0.beta2 spec/opal/core/module/name_spec.rb
opal-cj-0.7.0.beta1 spec/opal/core/module/name_spec.rb
opal-0.7.0.beta1 spec/opal/core/module/name_spec.rb
opal-0.6.2 spec/opal/core/module/name_spec.rb
opal-0.6.1 spec/opal/core/module/name_spec.rb