mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Update to ruby/spec@9be7c7e
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
aeeaadaad0
commit
b53cf149ad
246 changed files with 9108 additions and 548 deletions
|
@ -23,6 +23,54 @@ describe "Binding#eval" do
|
|||
bind2.local_variables.should == []
|
||||
end
|
||||
|
||||
it "inherits __LINE__ from the enclosing scope" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("__LINE__").should == obj.get_line_of_binding
|
||||
end
|
||||
|
||||
it "preserves __LINE__ across multiple calls to eval" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("__LINE__").should == obj.get_line_of_binding
|
||||
bind.eval("__LINE__").should == obj.get_line_of_binding
|
||||
end
|
||||
|
||||
it "increments __LINE__ on each line of a multiline eval" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("#foo\n__LINE__").should == obj.get_line_of_binding + 1
|
||||
end
|
||||
|
||||
it "inherits __LINE__ from the enclosing scope even if the Binding is created with #send" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind, line = obj.get_binding_with_send_and_line
|
||||
bind.eval("__LINE__").should == line
|
||||
end
|
||||
|
||||
it "starts with a __LINE__ of 1 if a filename is passed" do
|
||||
bind = BindingSpecs::Demo.new(1).get_binding
|
||||
bind.eval("__LINE__", "(test)").should == 1
|
||||
bind.eval("#foo\n__LINE__", "(test)").should == 2
|
||||
end
|
||||
|
||||
it "starts with a __LINE__ from the third argument if passed" do
|
||||
bind = BindingSpecs::Demo.new(1).get_binding
|
||||
bind.eval("__LINE__", "(test)", 88).should == 88
|
||||
bind.eval("#foo\n__LINE__", "(test)", 88).should == 89
|
||||
end
|
||||
|
||||
it "inherits __FILE__ from the enclosing scope" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("__FILE__").should == obj.get_file_of_binding
|
||||
end
|
||||
|
||||
it "uses the __FILE__ that is passed in" do
|
||||
bind = BindingSpecs::Demo.new(1).get_binding
|
||||
bind.eval("__FILE__", "(test)").should == "(test)"
|
||||
end
|
||||
|
||||
describe "with a file given" do
|
||||
it "does not store the filename permanently" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
|
@ -33,5 +81,15 @@ describe "Binding#eval" do
|
|||
end
|
||||
end
|
||||
|
||||
it "needs to be reviewed for spec completeness"
|
||||
it "with __method__ returns the method where the Binding was created" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind, meth = obj.get_binding_and_method
|
||||
bind.eval("__method__").should == meth
|
||||
end
|
||||
|
||||
it "with __method__ returns the method where the Binding was created, ignoring #send" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind, meth = obj.get_binding_with_send_and_method
|
||||
bind.eval("__method__").should == meth
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,6 +25,18 @@ module BindingSpecs
|
|||
__FILE__
|
||||
end
|
||||
|
||||
def get_binding_with_send_and_line
|
||||
[send(:binding), __LINE__]
|
||||
end
|
||||
|
||||
def get_binding_and_method
|
||||
[binding, :get_binding_and_method]
|
||||
end
|
||||
|
||||
def get_binding_with_send_and_method
|
||||
[send(:binding), :get_binding_with_send_and_method]
|
||||
end
|
||||
|
||||
def get_empty_binding
|
||||
binding
|
||||
end
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
require_relative '../../spec_helper'
|
||||
require_relative 'fixtures/classes'
|
||||
|
||||
describe "Binding#eval" do
|
||||
it "inherits __LINE__ from the enclosing scope" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("__LINE__").should == obj.get_line_of_binding
|
||||
end
|
||||
|
||||
it "preserves __LINE__ across multiple calls to eval" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("__LINE__").should == obj.get_line_of_binding
|
||||
bind.eval("__LINE__").should == obj.get_line_of_binding
|
||||
end
|
||||
|
||||
it "increments __LINE__ on each line of a multiline eval" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("#foo\n__LINE__").should == obj.get_line_of_binding + 1
|
||||
end
|
||||
|
||||
it "starts with a __LINE__ of 1 if a filename is passed" do
|
||||
bind = BindingSpecs::Demo.new(1).get_binding
|
||||
bind.eval("__LINE__", "(test)").should == 1
|
||||
bind.eval("#foo\n__LINE__", "(test)").should == 2
|
||||
end
|
||||
|
||||
it "starts with a __LINE__ from the third argument if passed" do
|
||||
bind = BindingSpecs::Demo.new(1).get_binding
|
||||
bind.eval("__LINE__", "(test)", 88).should == 88
|
||||
bind.eval("#foo\n__LINE__", "(test)", 88).should == 89
|
||||
end
|
||||
|
||||
it "inherits __FILE__ from the enclosing scope" do
|
||||
obj = BindingSpecs::Demo.new(1)
|
||||
bind = obj.get_binding
|
||||
bind.eval("__FILE__").should == obj.get_file_of_binding
|
||||
end
|
||||
|
||||
it "uses the __FILE__ that is passed in" do
|
||||
bind = BindingSpecs::Demo.new(1).get_binding
|
||||
bind.eval("__FILE__", "(test)").should == "(test)"
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue