all_symbols
Symbol.all_symbolsでRubyのシンボルテーブルにあるシンボルの配列を得ることができます。
p Symbol.all_symbols
疑問:Symbol.all_symbols.sortすると、以下のようなエラーになるのはなぜでしょう?
p Symbol.all_symbols.sort #=> in `sort': undefined method `<=>' for :public_encrypt:Symbol (NoMethodError)
追記:Ignis Fatuusさんから、Symbol.instance_methods.include?('<=>')がfalseである旨教えていただきました。また、sort_by {|sym| sym.to_s }では、という示唆もいただきました。感謝です♪ ではさっそく。
require 'pp' pp Symbol.all_symbols.sort_by {|sym| sym.to_s}
実行結果です。途中は略しています。
[:"!", :$!, :$", :$$, :$&, :$', :$*, :$+, :$,, :$-0, :$-F, :$-I, :$-K, :$-a, :$-d, :$-i, :$-l, :$-p, :$-v, :$-w, :$., :$/, :$0, :$:, :$;, :$<, :$=, :$>, :$?, :$@, :$DEBUG, :$FILENAME, :$KCODE, (中略) :warn, :warn_deprecated, :wday, :width, :wnum0, :wnum1, :writable?, :writable_real?, :write, :write_random_file, :write_smime, :x, :xmlschema, :y, :yday, :year, :zero?, :zip, :zone, :zone_offset, :zone_to_diff, :zone_utc?, :|, :~]