aboutsummaryrefslogtreecommitdiffstats
path: root/spec/rubyspec/core/symbol/inspect_spec.rb
blob: dead6e34fce749812d5ef230f35211eb25efdeb9 (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
require File.expand_path('../../../spec_helper', __FILE__)

describe "Symbol#inspect" do
  symbols = {
    fred:         ":fred",
    :fred?     => ":fred?",
    :fred!     => ":fred!",
    :$ruby     => ":$ruby",
    :@ruby     => ":@ruby",
    :@@ruby    => ":@@ruby",
    :"$ruby!"  => ":\"$ruby!\"",
    :"$ruby?"  => ":\"$ruby?\"",
    :"@ruby!"  => ":\"@ruby!\"",
    :"@ruby?"  => ":\"@ruby?\"",
    :"@@ruby!" => ":\"@@ruby!\"",
    :"@@ruby?" => ":\"@@ruby?\"",

    :$-w       => ":$-w",
    :"$-ww"    => ":\"$-ww\"",
    :"$+"      => ":$+",
    :"$~"      => ":$~",
    :"$:"      => ":$:",
    :"$?"      => ":$?",
    :"$<"      => ":$<",
    :"$_"      => ":$_",
    :"$/"      => ":$/",
    :"$'"      => ":$'",
    :"$\""     => ":$\"",
    :"$$"      => ":$$",
    :"$."      => ":$.",
    :"$,"      => ":$,",
    :"$`"      => ":$`",
    :"$!"      => ":$!",
    :"$;"      => ":$;",
    :"$\\"     => ":$\\",
    :"$="      => ":$=",
    :"$*"      => ":$*",
    :"$>"      => ":$>",
    :"$&"      => ":$&",
    :"$@"      => ":$@",
    :"$1234"   => ":$1234",

    :-@        => ":-@",
    :+@        => ":+@",
    :%         => ":%",
    :&         => ":&",
    :*         => ":*",
    :**        => ":**",
    :"/"       => ":/",     # lhs quoted for emacs happiness
    :<         => ":<",
    :<=        => ":<=",
    :<=>       => ":<=>",
    :==        => ":==",
    :===       => ":===",
    :=~        => ":=~",
    :>         => ":>",
    :>=        => ":>=",
    :>>        => ":>>",
    :[]        => ":[]",
    :[]=       => ":[]=",
    :"\<\<"    => ":\<\<",
    :^         => ":^",
    :"`"       => ":`",     # for emacs, and justice!
    :~         => ":~",
    :|         => ":|",

    :"!"       => [":\"!\"",  ":!" ],
    :"!="      => [":\"!=\"", ":!="],
    :"!~"      => [":\"!~\"", ":!~"],
    :"\$"      => ":\"$\"", # for justice!
    :"&&"      => ":\"&&\"",
    :"'"       => ":\"\'\"",
    :","       => ":\",\"",
    :"."       => ":\".\"",
    :".."      => ":\"..\"",
    :"..."     => ":\"...\"",
    :":"       => ":\":\"",
    :"::"      => ":\"::\"",
    :";"       => ":\";\"",
    :"="       => ":\"=\"",
    :"=>"      => ":\"=>\"",
    :"\?"      => ":\"?\"", # rawr!
    :"@"       => ":\"@\"",
    :"||"      => ":\"||\"",
    :"|||"     => ":\"|||\"",
    :"++"      => ":\"++\"",

    :"\""      => ":\"\\\"\"",
    :"\"\""    => ":\"\\\"\\\"\"",

    :"9"       => ":\"9\"",
    :"foo bar" => ":\"foo bar\"",
    :"*foo"    => ":\"*foo\"",
    :"foo "    => ":\"foo \"",
    :" foo"    => ":\" foo\"",
    :" "       => ":\" \"",
  }

  symbols.each do |input, expected|
    expected = expected[1] if expected.is_a?(Array)
    it "returns self as a symbol literal for #{expected}" do
      input.inspect.should == expected
    end
  end
end