Class: TaintedLove::Replacer::ReplaceDigest
- Defined in:
- lib/tainted_love/replacer/replace_digest.rb
Instance Method Summary collapse
Methods inherited from Base
Instance Method Details
#create_module(digest_class) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/tainted_love/replacer/replace_digest.rb', line 19 def create_module(digest_class) module_code = %{ Module.new do def hexdigest(value) digest = super digest.instance_eval do def tainted_love_origin #{digest_class} end end digest end end } eval(module_code) end |
#replace! ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/tainted_love/replacer/replace_digest.rb', line 10 def replace! digests = [:MD5, :SHA256, :SHA512, :SHA2, :SHA384, :SHA1] digests.each do |digest| mod = Digest.const_get(digest) mod.extend(create_module(mod)) if Object.const_defined?(mod.to_s) end end |
#should_replace? ⇒ Boolean
6 7 8 |
# File 'lib/tainted_love/replacer/replace_digest.rb', line 6 def should_replace? Object.const_defined?('Digest') end |