diff options
Diffstat (limited to 'spec/ruby/core/basicobject')
| -rw-r--r-- | spec/ruby/core/basicobject/__send___spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/basicobject_spec.rb | 20 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/equal_spec.rb | 20 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/equal_value_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/initialize_spec.rb | 4 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/instance_eval_spec.rb | 79 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/instance_exec_spec.rb | 48 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/method_missing_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/not_equal_spec.rb | 16 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/not_spec.rb | 4 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/singleton_method_added_spec.rb | 14 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/singleton_method_removed_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/core/basicobject/singleton_method_undefined_spec.rb | 2 |
13 files changed, 106 insertions, 109 deletions
diff --git a/spec/ruby/core/basicobject/__send___spec.rb b/spec/ruby/core/basicobject/__send___spec.rb index 005b1d0d90..2f814e448c 100644 --- a/spec/ruby/core/basicobject/__send___spec.rb +++ b/spec/ruby/core/basicobject/__send___spec.rb @@ -3,7 +3,7 @@ require_relative '../../shared/basicobject/send' describe "BasicObject#__send__" do it "is a public instance method" do - BasicObject.should have_public_instance_method(:__send__) + BasicObject.public_instance_methods(false).should.include?(:__send__) end it_behaves_like :basicobject_send, :__send__ diff --git a/spec/ruby/core/basicobject/basicobject_spec.rb b/spec/ruby/core/basicobject/basicobject_spec.rb index 27a322e72c..af28de0687 100644 --- a/spec/ruby/core/basicobject/basicobject_spec.rb +++ b/spec/ruby/core/basicobject/basicobject_spec.rb @@ -8,23 +8,23 @@ describe "BasicObject" do end it "raises NameError when referencing built-in constants" do - -> { class BasicObjectSpecs::BOSubclass; Kernel; end }.should raise_error(NameError) + -> { class BasicObjectSpecs::BOSubclass; Kernel; end }.should.raise(NameError) end it "does not define built-in constants (according to const_defined?)" do - BasicObject.const_defined?(:Kernel).should be_false + BasicObject.const_defined?(:Kernel).should == false end it "does not define built-in constants (according to defined?)" do - BasicObjectSpecs::BOSubclass.kernel_defined?.should be_nil + BasicObjectSpecs::BOSubclass.kernel_defined?.should == nil end it "is included in Object's list of constants" do - Object.constants(false).should include(:BasicObject) + Object.constants(false).should.include?(:BasicObject) end it "includes itself in its list of constants" do - BasicObject.constants(false).should include(:BasicObject) + BasicObject.constants(false).should.include?(:BasicObject) end end @@ -34,11 +34,11 @@ describe "BasicObject metaclass" do end it "is an instance of Class" do - @meta.should be_an_instance_of(Class) + @meta.should.instance_of?(Class) end it "has Class as superclass" do - @meta.superclass.should equal(Class) + @meta.superclass.should.equal?(Class) end it "contains methods for the BasicObject class" do @@ -57,11 +57,11 @@ describe "BasicObject instance metaclass" do end it "is an instance of Class" do - @meta.should be_an_instance_of(Class) + @meta.should.instance_of?(Class) end it "has BasicObject as superclass" do - @meta.superclass.should equal(BasicObject) + @meta.superclass.should.equal?(BasicObject) end it "contains methods defined for the BasicObject instance" do @@ -85,7 +85,7 @@ describe "BasicObject subclass" do describe "BasicObject references" do it "can refer to BasicObject from within itself" do - -> { BasicObject::BasicObject }.should_not raise_error + -> { BasicObject::BasicObject }.should_not.raise end end end diff --git a/spec/ruby/core/basicobject/equal_spec.rb b/spec/ruby/core/basicobject/equal_spec.rb index 3c1ad56d4a..c0f41dc0c0 100644 --- a/spec/ruby/core/basicobject/equal_spec.rb +++ b/spec/ruby/core/basicobject/equal_spec.rb @@ -3,7 +3,7 @@ require_relative '../../shared/kernel/equal' describe "BasicObject#equal?" do it "is a public instance method" do - BasicObject.should have_public_instance_method(:equal?) + BasicObject.public_instance_methods(false).should.include?(:equal?) end it_behaves_like :object_equal, :equal? @@ -11,9 +11,11 @@ describe "BasicObject#equal?" do it "is unaffected by overriding __id__" do o1 = mock("object") o2 = mock("object") - def o1.__id__; 10; end - def o2.__id__; 10; end - o1.equal?(o2).should be_false + suppress_warning { + def o1.__id__; 10; end + def o2.__id__; 10; end + } + o1.equal?(o2).should == false end it "is unaffected by overriding object_id" do @@ -21,7 +23,7 @@ describe "BasicObject#equal?" do o1.stub!(:object_id).and_return(10) o2 = mock("object") o2.stub!(:object_id).and_return(10) - o1.equal?(o2).should be_false + o1.equal?(o2).should == false end it "is unaffected by overriding ==" do @@ -29,12 +31,12 @@ describe "BasicObject#equal?" do o1 = mock("object") o1.stub!(:==).and_return(true) o2 = mock("object") - o1.equal?(o2).should be_false + o1.equal?(o2).should == false # same objects, overriding == to return false o3 = mock("object") o3.stub!(:==).and_return(false) - o3.equal?(o3).should be_true + o3.equal?(o3).should == true end it "is unaffected by overriding eql?" do @@ -42,11 +44,11 @@ describe "BasicObject#equal?" do o1 = mock("object") o1.stub!(:eql?).and_return(true) o2 = mock("object") - o1.equal?(o2).should be_false + o1.equal?(o2).should == false # same objects, overriding eql? to return false o3 = mock("object") o3.stub!(:eql?).and_return(false) - o3.equal?(o3).should be_true + o3.equal?(o3).should == true end end diff --git a/spec/ruby/core/basicobject/equal_value_spec.rb b/spec/ruby/core/basicobject/equal_value_spec.rb index 6c825513c1..eb951a8305 100644 --- a/spec/ruby/core/basicobject/equal_value_spec.rb +++ b/spec/ruby/core/basicobject/equal_value_spec.rb @@ -3,7 +3,7 @@ require_relative '../../shared/kernel/equal' describe "BasicObject#==" do it "is a public instance method" do - BasicObject.should have_public_instance_method(:==) + BasicObject.public_instance_methods(false).should.include?(:==) end it_behaves_like :object_equal, :== diff --git a/spec/ruby/core/basicobject/initialize_spec.rb b/spec/ruby/core/basicobject/initialize_spec.rb index b7ce73ffd5..09e86676b6 100644 --- a/spec/ruby/core/basicobject/initialize_spec.rb +++ b/spec/ruby/core/basicobject/initialize_spec.rb @@ -2,12 +2,12 @@ require_relative '../../spec_helper' describe "BasicObject#initialize" do it "is a private instance method" do - BasicObject.should have_private_instance_method(:initialize) + BasicObject.private_instance_methods(false).should.include?(:initialize) end it "does not accept arguments" do -> { BasicObject.new("This", "makes it easier", "to call super", "from other constructors") - }.should raise_error(ArgumentError) + }.should.raise(ArgumentError) end end diff --git a/spec/ruby/core/basicobject/instance_eval_spec.rb b/spec/ruby/core/basicobject/instance_eval_spec.rb index 1f3a43f341..124d179b5a 100644 --- a/spec/ruby/core/basicobject/instance_eval_spec.rb +++ b/spec/ruby/core/basicobject/instance_eval_spec.rb @@ -7,31 +7,31 @@ describe "BasicObject#instance_eval" do end it "is a public instance method" do - BasicObject.should have_public_instance_method(:instance_eval) + BasicObject.public_instance_methods(false).should.include?(:instance_eval) end it "sets self to the receiver in the context of the passed block" do a = BasicObject.new - a.instance_eval { self }.equal?(a).should be_true + a.instance_eval { self }.equal?(a).should == true end it "evaluates strings" do a = BasicObject.new - a.instance_eval('self').equal?(a).should be_true + a.instance_eval('self').equal?(a).should == true end it "raises an ArgumentError when no arguments and no block are given" do - -> { "hola".instance_eval }.should raise_error(ArgumentError, "wrong number of arguments (given 0, expected 1..3)") + -> { "hola".instance_eval }.should.raise(ArgumentError, "wrong number of arguments (given 0, expected 1..3)") end it "raises an ArgumentError when a block and normal arguments are given" do - -> { "hola".instance_eval(4, 5) {|a,b| a + b } }.should raise_error(ArgumentError, "wrong number of arguments (given 2, expected 0)") + -> { "hola".instance_eval(4, 5) {|a,b| a + b } }.should.raise(ArgumentError, "wrong number of arguments (given 2, expected 0)") end it "raises an ArgumentError when more than 3 arguments are given" do -> { "hola".instance_eval("1 + 1", "some file", 0, "bogus") - }.should raise_error(ArgumentError, "wrong number of arguments (given 4, expected 1..3)") + }.should.raise(ArgumentError, "wrong number of arguments (given 4, expected 1..3)") end it "yields the object to the block" do @@ -51,7 +51,7 @@ describe "BasicObject#instance_eval" do end end f.foo.should == 1 - -> { Object.new.foo }.should raise_error(NoMethodError) + -> { Object.new.foo }.should.raise(NoMethodError) end it "preserves self in the original block when passed a block argument" do @@ -71,9 +71,9 @@ describe "BasicObject#instance_eval" do it "binds self to the receiver" do s = "hola" - (s == s.instance_eval { self }).should be_true + (s == s.instance_eval { self }).should == true o = mock('o') - (o == o.instance_eval("self")).should be_true + (o == o.instance_eval("self")).should == true end it "executes in the context of the receiver" do @@ -84,11 +84,9 @@ describe "BasicObject#instance_eval" do end - ruby_version_is "3.3" do - it "uses the caller location as default location" do - f = Object.new - f.instance_eval("[__FILE__, __LINE__]").should == ["(eval at #{__FILE__}:#{__LINE__})", 1] - end + it "uses the caller location as default location" do + f = Object.new + f.instance_eval("[__FILE__, __LINE__]").should == ["(eval at #{__FILE__}:#{__LINE__})", 1] end it "has access to receiver's instance variables" do @@ -97,15 +95,15 @@ describe "BasicObject#instance_eval" do end it "raises TypeError for frozen objects when tries to set receiver's instance variables" do - -> { nil.instance_eval { @foo = 42 } }.should raise_error(FrozenError, "can't modify frozen NilClass: nil") - -> { true.instance_eval { @foo = 42 } }.should raise_error(FrozenError, "can't modify frozen TrueClass: true") - -> { false.instance_eval { @foo = 42 } }.should raise_error(FrozenError, "can't modify frozen FalseClass: false") - -> { 1.instance_eval { @foo = 42 } }.should raise_error(FrozenError, "can't modify frozen Integer: 1") - -> { :symbol.instance_eval { @foo = 42 } }.should raise_error(FrozenError, "can't modify frozen Symbol: :symbol") + -> { nil.instance_eval { @foo = 42 } }.should.raise(FrozenError, "can't modify frozen NilClass: nil") + -> { true.instance_eval { @foo = 42 } }.should.raise(FrozenError, "can't modify frozen TrueClass: true") + -> { false.instance_eval { @foo = 42 } }.should.raise(FrozenError, "can't modify frozen FalseClass: false") + -> { 1.instance_eval { @foo = 42 } }.should.raise(FrozenError, "can't modify frozen Integer: 1") + -> { :symbol.instance_eval { @foo = 42 } }.should.raise(FrozenError, "can't modify frozen Symbol: :symbol") obj = Object.new obj.freeze - -> { obj.instance_eval { @foo = 42 } }.should raise_error(FrozenError) + -> { obj.instance_eval { @foo = 42 } }.should.raise(FrozenError) end it "treats block-local variables as local to the block" do @@ -130,7 +128,7 @@ describe "BasicObject#instance_eval" do class B; end B } - obj.singleton_class.const_get(:B).should be_an_instance_of(Class) + obj.singleton_class.const_get(:B).should.instance_of?(Class) end describe "constants lookup when a String given" do @@ -141,22 +139,11 @@ describe "BasicObject#instance_eval" do caller.get_constant_with_string(receiver).should == :singleton_class end - ruby_version_is ""..."3.1" do - it "looks in the caller scope next" do - receiver = BasicObjectSpecs::InstEval::Constants::ConstantInReceiverClass::ReceiverScope::Receiver.new - caller = BasicObjectSpecs::InstEval::Constants::ConstantInReceiverClass::CallerScope::Caller.new + it "looks in the receiver class next" do + receiver = BasicObjectSpecs::InstEval::Constants::ConstantInReceiverClass::ReceiverScope::Receiver.new + caller = BasicObjectSpecs::InstEval::Constants::ConstantInReceiverClass::CallerScope::Caller.new - caller.get_constant_with_string(receiver).should == :Caller - end - end - - ruby_version_is "3.1" do - it "looks in the receiver class next" do - receiver = BasicObjectSpecs::InstEval::Constants::ConstantInReceiverClass::ReceiverScope::Receiver.new - caller = BasicObjectSpecs::InstEval::Constants::ConstantInReceiverClass::CallerScope::Caller.new - - caller.get_constant_with_string(receiver).should == :Receiver - end + caller.get_constant_with_string(receiver).should == :Receiver end it "looks in the caller class next" do @@ -182,16 +169,16 @@ describe "BasicObject#instance_eval" do end it "doesn't get constants in the receiver if a block given" do - BasicObjectSpecs::InstEvalOuter::Inner::X_BY_BLOCK.should be_nil + BasicObjectSpecs::InstEvalOuter::Inner::X_BY_BLOCK.should == nil end it "raises a TypeError when defining methods on an immediate" do -> do 1.instance_eval { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) -> do :foo.instance_eval { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) end describe "class variables lookup" do @@ -230,23 +217,23 @@ describe "BasicObject#instance_eval" do it "does not have access to class variables in the receiver class when called with a String" do receiver = BasicObjectSpecs::InstEval::CVar::Get::ReceiverScope.new caller = BasicObjectSpecs::InstEval::CVar::Get::CallerWithoutCVarScope.new - -> { caller.get_class_variable_with_string(receiver) }.should raise_error(NameError, /uninitialized class variable @@cvar/) + -> { caller.get_class_variable_with_string(receiver) }.should.raise(NameError, /uninitialized class variable @@cvar/) end it "does not have access to class variables in the receiver's singleton class when called with a String" do receiver = BasicObjectSpecs::InstEval::CVar::Get::ReceiverWithCVarDefinedInSingletonClass caller = BasicObjectSpecs::InstEval::CVar::Get::CallerWithoutCVarScope.new - -> { caller.get_class_variable_with_string(receiver) }.should raise_error(NameError, /uninitialized class variable @@cvar/) + -> { caller.get_class_variable_with_string(receiver) }.should.raise(NameError, /uninitialized class variable @@cvar/) end end it "raises a TypeError when defining methods on numerics" do -> do (1.0).instance_eval { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) -> do (1 << 64).instance_eval { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) end it "evaluates procs originating from methods" do @@ -297,7 +284,7 @@ describe "BasicObject#instance_eval" do def source_code.to_str() :symbol end a = BasicObject.new - -> { a.instance_eval(source_code) }.should raise_error(TypeError, /can't convert Object to String/) + -> { a.instance_eval(source_code) }.should raise_consistent_error(TypeError, /can't convert Object into String/) end it "converts filename argument with #to_str method" do @@ -316,7 +303,7 @@ describe "BasicObject#instance_eval" do filename = Object.new def filename.to_str() :symbol end - -> { Object.new.instance_eval("raise", filename) }.should raise_error(TypeError, /can't convert Object to String/) + -> { Object.new.instance_eval("raise", filename) }.should raise_consistent_error(TypeError, /can't convert Object into String/) end it "converts lineno argument with #to_int method" do @@ -335,6 +322,6 @@ describe "BasicObject#instance_eval" do lineno = Object.new def lineno.to_int() :symbol end - -> { Object.new.instance_eval("raise", "file.rb", lineno) }.should raise_error(TypeError, /can't convert Object to Integer/) + -> { Object.new.instance_eval("raise", "file.rb", lineno) }.should raise_consistent_error(TypeError, /can't convert Object into Integer/) end end diff --git a/spec/ruby/core/basicobject/instance_exec_spec.rb b/spec/ruby/core/basicobject/instance_exec_spec.rb index 289fdd889b..cfce9a65ad 100644 --- a/spec/ruby/core/basicobject/instance_exec_spec.rb +++ b/spec/ruby/core/basicobject/instance_exec_spec.rb @@ -3,21 +3,21 @@ require_relative 'fixtures/classes' describe "BasicObject#instance_exec" do it "is a public instance method" do - BasicObject.should have_public_instance_method(:instance_exec) + BasicObject.public_instance_methods(false).should.include?(:instance_exec) end it "sets self to the receiver in the context of the passed block" do a = BasicObject.new - a.instance_exec { self }.equal?(a).should be_true + a.instance_exec { self }.equal?(a).should == true end it "passes arguments to the block" do a = BasicObject.new - a.instance_exec(1) { |b| b }.should equal(1) + a.instance_exec(1) { |b| b }.should.equal?(1) end it "raises a LocalJumpError unless given a block" do - -> { "hola".instance_exec }.should raise_error(LocalJumpError) + -> { "hola".instance_exec }.should.raise(LocalJumpError) end it "has an arity of -1" do @@ -25,17 +25,23 @@ describe "BasicObject#instance_exec" do end it "accepts arguments with a block" do - -> { "hola".instance_exec(4, 5) { |a,b| a + b } }.should_not raise_error + -> { "hola".instance_exec(4, 5) { |a,b| a + b } }.should_not.raise end it "doesn't pass self to the block as an argument" do - "hola".instance_exec { |o| o }.should be_nil + "hola".instance_exec { |o| o }.should == nil end it "passes any arguments to the block" do Object.new.instance_exec(1,2) {|one, two| one + two}.should == 3 end + describe "with optional argument" do + it "does not destructure a single array argument" do + Object.new.instance_exec([1, 2, 3]) { |a = 99| a }.should == [1, 2, 3] + end + end + it "only binds the exec to the receiver" do f = Object.new f.instance_exec do @@ -44,7 +50,7 @@ describe "BasicObject#instance_exec" do end end f.foo.should == 1 - -> { Object.new.foo }.should raise_error(NoMethodError) + -> { Object.new.foo }.should.raise(NoMethodError) end # TODO: This should probably be replaced with a "should behave like" that uses @@ -71,37 +77,37 @@ describe "BasicObject#instance_exec" do end it "sets class variables in the receiver" do - BasicObjectSpecs::InstExec.class_variables.should include(:@@count) + BasicObjectSpecs::InstExec.class_variables.should.include?(:@@count) BasicObjectSpecs::InstExec.send(:class_variable_get, :@@count).should == 2 end it "raises a TypeError when defining methods on an immediate" do -> do 1.instance_exec { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) -> do :foo.instance_exec { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) end -quarantine! do # Not clean, leaves cvars lying around to break other specs - it "scopes class var accesses in the caller when called on an Integer" do - # Integer can take instance vars - Integer.class_eval "@@__tmp_instance_exec_spec = 1" - (defined? @@__tmp_instance_exec_spec).should == nil + quarantine! do # Not clean, leaves cvars lying around to break other specs + it "scopes class var accesses in the caller when called on an Integer" do + # Integer can take instance vars + Integer.class_eval "@@__tmp_instance_exec_spec = 1" + (defined? @@__tmp_instance_exec_spec).should == nil - @@__tmp_instance_exec_spec = 2 - 1.instance_exec { @@__tmp_instance_exec_spec }.should == 2 - Integer.__send__(:remove_class_variable, :@@__tmp_instance_exec_spec) + @@__tmp_instance_exec_spec = 2 + 1.instance_exec { @@__tmp_instance_exec_spec }.should == 2 + Integer.__send__(:remove_class_variable, :@@__tmp_instance_exec_spec) + end end -end it "raises a TypeError when defining methods on numerics" do -> do (1.0).instance_exec { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) -> do (1 << 64).instance_exec { def foo; end } - end.should raise_error(TypeError) + end.should.raise(TypeError) end end diff --git a/spec/ruby/core/basicobject/method_missing_spec.rb b/spec/ruby/core/basicobject/method_missing_spec.rb index a29d4375bc..8785b41b21 100644 --- a/spec/ruby/core/basicobject/method_missing_spec.rb +++ b/spec/ruby/core/basicobject/method_missing_spec.rb @@ -3,7 +3,7 @@ require_relative '../../shared/basicobject/method_missing' describe "BasicObject#method_missing" do it "is a private method" do - BasicObject.should have_private_instance_method(:method_missing) + BasicObject.private_instance_methods(false).should.include?(:method_missing) end end diff --git a/spec/ruby/core/basicobject/not_equal_spec.rb b/spec/ruby/core/basicobject/not_equal_spec.rb index 9329128c43..29b14b0fff 100644 --- a/spec/ruby/core/basicobject/not_equal_spec.rb +++ b/spec/ruby/core/basicobject/not_equal_spec.rb @@ -2,24 +2,24 @@ require_relative '../../spec_helper' describe "BasicObject#!=" do it "is a public instance method" do - BasicObject.should have_public_instance_method(:'!=') + BasicObject.public_instance_methods(false).should.include?(:'!=') end it "returns true if other is not identical to self" do a = BasicObject.new b = BasicObject.new - (a != b).should be_true + (a != b).should == true end it "returns true if other is an Object" do a = BasicObject.new b = Object.new - (a != b).should be_true + (a != b).should == true end it "returns false if other is identical to self" do a = BasicObject.new - (a != a).should be_false + (a != a).should == false end it "dispatches to #==" do @@ -27,19 +27,19 @@ describe "BasicObject#!=" do b = BasicObject.new a.should_receive(:==).and_return(true) - (a != b).should be_false + (a != b).should == false end describe "when invoked using Kernel#send" do it "returns true if other is not identical to self" do a = Object.new b = Object.new - a.send(:!=, b).should be_true + a.send(:!=, b).should == true end it "returns false if other is identical to self" do a = Object.new - a.send(:!=, a).should be_false + a.send(:!=, a).should == false end it "dispatches to #==" do @@ -47,7 +47,7 @@ describe "BasicObject#!=" do b = Object.new a.should_receive(:==).and_return(true) - a.send(:!=, b).should be_false + a.send(:!=, b).should == false end end end diff --git a/spec/ruby/core/basicobject/not_spec.rb b/spec/ruby/core/basicobject/not_spec.rb index ca4cb6f5ff..a6f58ae6f5 100644 --- a/spec/ruby/core/basicobject/not_spec.rb +++ b/spec/ruby/core/basicobject/not_spec.rb @@ -2,10 +2,10 @@ require_relative '../../spec_helper' describe "BasicObject#!" do it "is a public instance method" do - BasicObject.should have_public_instance_method(:'!') + BasicObject.public_instance_methods(false).should.include?(:'!') end it "returns false" do - (!BasicObject.new).should be_false + (!BasicObject.new).should == false end end diff --git a/spec/ruby/core/basicobject/singleton_method_added_spec.rb b/spec/ruby/core/basicobject/singleton_method_added_spec.rb index ab6b2a2d10..f39b91768c 100644 --- a/spec/ruby/core/basicobject/singleton_method_added_spec.rb +++ b/spec/ruby/core/basicobject/singleton_method_added_spec.rb @@ -7,7 +7,7 @@ describe "BasicObject#singleton_method_added" do end it "is a private method" do - BasicObject.should have_private_instance_method(:singleton_method_added) + BasicObject.private_instance_methods(false).should.include?(:singleton_method_added) end it "is called when a singleton method is defined on an object" do @@ -35,7 +35,7 @@ describe "BasicObject#singleton_method_added" do end end - ScratchPad.recorded.should_not include(:new_instance_method) + ScratchPad.recorded.should_not.include?(:new_instance_method) end it "is called when a singleton method is defined on a module" do @@ -94,8 +94,10 @@ describe "BasicObject#singleton_method_added" do -> { def self.foo end - }.should raise_error(NoMethodError, /undefined method `singleton_method_added' for/) + }.should.raise(NoMethodError, /undefined method [`']singleton_method_added' for/) end + ensure + BasicObjectSpecs.send(:remove_const, :NoSingletonMethodAdded) end it "raises NoMethodError for a singleton instance" do @@ -106,16 +108,16 @@ describe "BasicObject#singleton_method_added" do -> { def foo end - }.should raise_error(NoMethodError, /undefined method `singleton_method_added' for #<Object:/) + }.should.raise(NoMethodError, /undefined method [`']singleton_method_added' for #<Object:/) -> { define_method(:bar) {} - }.should raise_error(NoMethodError, /undefined method `singleton_method_added' for #<Object:/) + }.should.raise(NoMethodError, /undefined method [`']singleton_method_added' for #<Object:/) end -> { object.define_singleton_method(:baz) {} - }.should raise_error(NoMethodError, /undefined method `singleton_method_added' for #<Object:/) + }.should.raise(NoMethodError, /undefined method [`']singleton_method_added' for #<Object:/) end it "calls #method_missing" do diff --git a/spec/ruby/core/basicobject/singleton_method_removed_spec.rb b/spec/ruby/core/basicobject/singleton_method_removed_spec.rb index 46f9a6894c..1831e3c070 100644 --- a/spec/ruby/core/basicobject/singleton_method_removed_spec.rb +++ b/spec/ruby/core/basicobject/singleton_method_removed_spec.rb @@ -6,7 +6,7 @@ describe "BasicObject#singleton_method_removed" do end it "is a private method" do - BasicObject.should have_private_instance_method(:singleton_method_removed) + BasicObject.private_instance_methods(false).should.include?(:singleton_method_removed) end it "is called when a method is removed on self" do diff --git a/spec/ruby/core/basicobject/singleton_method_undefined_spec.rb b/spec/ruby/core/basicobject/singleton_method_undefined_spec.rb index 7d6c7207db..cc47341878 100644 --- a/spec/ruby/core/basicobject/singleton_method_undefined_spec.rb +++ b/spec/ruby/core/basicobject/singleton_method_undefined_spec.rb @@ -6,7 +6,7 @@ describe "BasicObject#singleton_method_undefined" do end it "is a private method" do - BasicObject.should have_private_instance_method(:singleton_method_undefined) + BasicObject.private_instance_methods(false).should.include?(:singleton_method_undefined) end it "is called when a method is removed on self" do |
