The objects of the 
Symbol class represent the names present inside the Ruby interpreter. They are usually generated by using 
:name literal syntax or by using 
to_sym methods. The similar Symbol objects are created for a given name string for the duration of a program's execution, regardless of the content and meaning of the name.
Example:
            Ruby
    # Ruby program to illustrate 
# Symbol objects
# context 3
module Geeks1
class Max
end
$a1 = :Max
end
# context 1
module Geeks2
Max = 1
$a2 = :Max
end
# context 2
def Max()
end
$a3 = :Max
puts $a1.object_id 
puts $a2.object_id 
puts $a3.object_id 
1675428
1675428
1675428
Explanation: If Max is a constant in context1, a method in context2, or class in the context3, then this 
:Max will be the same object in all given contexts.
Class Method 
all_symbols : This method returns an array of symbols that currently present in the Ruby's symbol table.
Symbol.all_symbols
Example:
            Ruby
    # Ruby program to illustrate 
# the use of all_symbol method
# Using all_symbol method
puts Symbol.all_symbols.size 
puts Symbol.all_symbols[1, 20]
3250
"
#
$
%
&
'
(
)
*
+
,
-
.
/
:
;
<
=
>
?
Instance Methods 
     
- id2name : This method returns a string that is representation of sym.
sym.id2name Example:
            Ruby# Ruby program to illustrate 
# the use of id2name method
# Using id2name method
p :Geeks.id2name 
p :"Welcome to GeeksforGeeks Portal".id2name
 
"Geeks"
"Welcome to GeeksforGeeks Portal"
 
- inspect : This method return the representation of sym in the form of symbol literal.
sym.inspect Example:
            Ruby# Ruby program to illustrate 
# the use of inspect method
# Using inspect method
p :geeks.inspect
p :"welcome to geeksforgeeks portal".inspect
 
":geeks"
":\"welcome to geeksforgeeks portal\""
 
- to_s : This method is similar to Symbol#id2name. This method returns the name or a string that corresponding to sym. 
sym.to_s Example:
            Ruby# Ruby program to illustrate 
# the use of to_s method
# Using to_s method
p :geeks.to_s
p :"welcome to geeksforgeeks portal".to_s
 
"geeks"
"welcome to geeksforgeeks portal"
 
- <=> :It compares sym to other_sym after calling to_s. It returns -1 if  sym is less than other_sym, it returns 0 if sym is equal to other_sym, or it returns +1 if sym is greater than other_sym.
sym <=> other_sym  Example:
            Ruby# Ruby program to illustrate 
# use of <=>
# Using <=>
a= :geeks
b = :"welcome to geeksforgeeks portal"
puts a<=>b
c= :geeks
puts a<=>c
puts b<=>a
 
-1
0
1
 
- == : It returns true if the sym is equal to obj, otherwise it return false.
sym== obj Example:
            Ruby# Ruby program to illustrate 
# use of ==
# Using ==
a= :geeks
b = :"welcome to geeksforgeeks portal"
puts a==b
c= :geeks
puts a==c
 
false
true
 
- [] : This method returns the value of sym.to_s[].
sym[idx] --> char 
sym[b, n] --> string
 
- capitalize : This method is similar to Symbol#to_s. 
 
sym.capitalize 
- casecmp : This method is case-insensitive version of symbol <=$gt;. It will return -1, 0, 1, or nil.  It is worked on A-Z/a-z, not on all Unicode. In this method nil is returned when the two symbols have incompatible encodings or if other_sym is not a symbol.
sym.casecmp(other) Example:
            Ruby# Ruby program to illustrate 
# use of casecmp method
# Using casecmp method
puts :GeeKs.casecmp(:geeks)
puts :GeeKsGfg.casecmp(:geeksG)
puts :GeeKsGfg.casecmp(:geeksGfgz)
puts :GeeKsGfg.casecmp(3)
 
0
1
-1
nil 
- downcase : This method converts upper-case letters in lower-case.  
sym.downcase Example:
            Ruby# Ruby program to illustrate 
# use of the downcase method
# Using the downcase method
puts :"WELCOME TO GEEKSFORGEEKS".downcase
 
:"welcome to geeksforgeeks" 
- length : This method returns the length of the given sym.  
sym.length Example:
            Ruby# Ruby program to illustrate 
# use of length method
# Using length method
puts :GeeKsGfg.length
 
8 
- slice : This method is similar to Symbol#to_s. This method provides you character on the given index from the sym . 
sym.slice(index)
sym.slice(b, n)
 Example:
            Ruby# Ruby program to illustrate 
# use of slice method
# Using slice method
p :GeeKsGfg.slice(3)
p :GeeKsGfg.slice(6)
 
"K"
"f"
 
- swapcase : This method interchange the case of the characters that present in sym. In other words, it converts lower-case into upper-case and upper-case into lower-case.  
sym.swapcase Example:
            Ruby# Ruby program to illustrate 
# use of the swapcase method
# Using swapcase method
p "WELcome TO geeksFORGEEKS".swapcase
 
"welCOME to GEEKSforgeeks" 
- upcase : This method converts lower-case characters into upper-case.  
sym.upcase Example:
            Ruby# Ruby program to illustrate 
# use of the upcase method
# Using upcase method
p "welcome to geeksforgeeks".upcase
 
"WELCOME TO GEEKSFORGEEKS" 
- to_proc : This method return a Proc object which answer to the given method by sym.
sym.to_proc Example:
            Ruby# Ruby program to illustrate 
# use of to_proc method
# Using to_proc method
p (1..5).collect(&:to_s)
 
 ["1", "2", "3", "4", "5"] 
- to_sym This method returns a symbol that corresponding to an object. Here sym has been already a symbol, so in this case it returns it.
sym.to_sym 
Reference: http://ruby-doc.org/core-2.5.0/Symbol.html#method-i-5B-5D