diff options
Diffstat (limited to 'spec/ruby/core/method/source_location_spec.rb')
| -rw-r--r-- | spec/ruby/core/method/source_location_spec.rb | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/spec/ruby/core/method/source_location_spec.rb b/spec/ruby/core/method/source_location_spec.rb index 1f476aaa9b..22fcb98c74 100644 --- a/spec/ruby/core/method/source_location_spec.rb +++ b/spec/ruby/core/method/source_location_spec.rb @@ -7,18 +7,18 @@ describe "Method#source_location" do end it "returns an Array" do - @method.source_location.should be_an_instance_of(Array) + @method.source_location.should.instance_of?(Array) end it "sets the first value to the path of the file in which the method was defined" do file = @method.source_location.first - file.should be_an_instance_of(String) - file.should == File.realpath('../fixtures/classes.rb', __FILE__) + file.should.instance_of?(String) + file.should == File.realpath('fixtures/classes.rb', __dir__) end it "sets the last value to an Integer representing the line on which the method was defined" do line = @method.source_location.last - line.should be_an_instance_of(Integer) + line.should.instance_of?(Integer) line.should == 5 end @@ -92,7 +92,7 @@ describe "Method#source_location" do loc.should == nil else loc[0].should.start_with?('<internal:') - loc[1].should be_kind_of(Integer) + loc[1].should.is_a?(Integer) end loc = method(:tap).source_location @@ -100,14 +100,21 @@ describe "Method#source_location" do loc.should == nil else loc[0].should.start_with?('<internal:') - loc[1].should be_kind_of(Integer) + loc[1].should.is_a?(Integer) end end + it "works for eval with a given line" do + c = Class.new do + eval('def self.m; end', nil, "foo", 100) + end + c.method(:m).source_location.should == ["foo", 100] + end + describe "for a Method generated by respond_to_missing?" do it "returns nil" do m = MethodSpecs::Methods.new - m.method(:handled_via_method_missing).source_location.should be_nil + m.method(:handled_via_method_missing).source_location.should == nil end end end |
