1
我想知道如何以編程方式提前查看Digest
模塊上可用的每個常量。下面看到的行爲是由於const_missing
使用here:顯示「摘要」中的所有常量
require 'digest'
Digest.constants
#=> [:Class, :REQUIRE_MUTEX, :Instance, :Base]
Digest::MD5
Digest.constants
#=> [:Class, :REQUIRE_MUTEX, :Instance, :Base, :MD5]
Digest::SHA1
Digest.constants
#=> [:Class, :REQUIRE_MUTEX, :Instance, :Base, :MD5, :SHA1]
考慮到他們在可能的消化元編程,我怎麼能知道所有可能的可用摘要?
知識,出現在紅寶石2.4.1可用的那些應該是[:SHA256, :SHA384, :SHA512, :SHA1, :SHA2, :MD5, :RMD160]
一種方法是查看源代碼:https://github.com/ruby/ruby/tree/trunk/ext/digest –
除了此評論似乎另有說明: https://github.com/ ruby/ruby/blob/trunk/ext/digest/lib/digest.rb#L103 您可以加載不在源代碼中的SHA512。 – BookOfGreg
好點。那麼,因爲常量是懶惰加載的,我不知道如何在不知道它們的情況下列出它們。 ¡\\ _(ツ)_ /¯ –