class Discombobulator::SwapGlobals
Public Class Methods
call(meth, *args, &block)
click to toggle source
# File lib/discombobulator/swap_globals.rb, line 2 def self.call(meth, *args, &block) self.new.call(meth, *args, &block) end
Public Instance Methods
call(meth, *args, &block)
click to toggle source
# File lib/discombobulator/swap_globals.rb, line 6 def call(meth, *args, &block) name1, name2 = global_variables.shuffle.take(2) val1, val2 = get_global(name1), get_global(name2) set_global(name1, val2) set_global(name2, val1) Discombobulator.new rescue NameError, SyntaxError, TypeError, ArgumentError retry end
Private Instance Methods
get_global(name)
click to toggle source
# File lib/discombobulator/swap_globals.rb, line 17 def get_global(name) eval(name.to_s) end
set_global(name, value)
click to toggle source
# File lib/discombobulator/swap_globals.rb, line 21 def set_global(name, value) if $DISCOMBOBULATOR_SAFETY_FEATURE == 42 puts "Setting global #{name} to #{value.inspect}" else eval("#{name} = value") end end