Module: Accidentally::MadHax

Defined in:
lib/accidentally/mad_hax.rb

Constant Summary collapse

@@blacklist =
%w(daemonize display exec exit! fork sleep system syscall what? what ri accidentally accidently)

Class Method Summary collapse

Class Method Details

.find_how(original, target, args = [], &blk) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/accidentally/mad_hax.rb', line 14

def find_how original, target, args = [], &blk
  let(
    :f => proc { |m| MethodInvoker.invoke(original, m, args, &blk) },
    :candidates => proc { select_candidates(original.methods) }
  ).in {
    candidates.inject([]) { |acc, m| 
      v = f(m)
      acc << "#{m}#{" " + v.block_used if v.block_used}" if v.result == target 
      acc
    }        
  } 
end

.select_candidates(methods) ⇒ Object



10
11
12
# File 'lib/accidentally/mad_hax.rb', line 10

def select_candidates methods
  methods.select { |m| m !~ /(should)|(assert)|(methods)/ && !@@blacklist.include?(m)}
end