aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/core/string/shared/to_sym.rb
blob: 501247078d2adc346862f14dd051d55099fae99b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 "does not special case +(binary) and -(binary)" do
    "+(binary)".send(@method).should == :"+(binary)"
    "-(binary)".send(@method).should == :"-(binary)"
  end

  it "does not special case certain operators" do
    [ ["!@", :"!@"],
      ["~@", :"~@"],
      ["!(unary)", :"!(unary)"],
      ["~(unary)", :"~(unary)"],
      ["+(unary)", :"+(unary)"],
      ["-(unary)", :"-(unary)"]
    ].should be_computed_by(@method)
  end
end