Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

49 lines (42 sloc) 1.428 kb
describe :string_to_sym, :shared => true do
it "returns the symbol corresponding to self" do
"Koala".send(@method).should == :Koala
'cat'.send(@method).should == :cat
'@cat'.send(@method).should == :@cat
'cat and dog'.send(@method).should == :"cat and dog"
"abc=".send(@method).should == :abc=
end
it "special cases +(binary) and -(binary)" do
"+(binary)".to_sym.should == :+
"-(binary)".to_sym.should == :-
end
ruby_version_is ""..."1.9" do
it "special cases !@ and ~@" do
"!@".to_sym.should == :"!"
"~@".to_sym.should == :~
end
it "special cases !(unary) and ~(unary)" do
"!(unary)".to_sym.should == :"!"
"~(unary)".to_sym.should == :~
end
it "special cases +(unary) and -(unary)" do
"+(unary)".to_sym.should == :"+@"
"-(unary)".to_sym.should == :"-@"
end
it "raises an ArgumentError when self can't be converted to symbol" do
lambda { "".send(@method) }.should raise_error(ArgumentError)
lambda { "foo\x00bar".send(@method) }.should raise_error(ArgumentError)
end
end
ruby_version_is "1.9" do
it "does not special case certain operators" do
[ ["!@", :"!@"],
["~@", :"~@"],
["!(unary)", :"!(unary)"],
["~(unary)", :"~(unary)"],
["+(unary)", :"+(unary)"],
["-(unary)", :"-(unary)"]
].should be_computed_by(:to_sym)
end
end
end
Jump to Line
Something went wrong with that request. Please try again.