Module: IS::ModuleReset
- Defined in:
- lib/is-module-reset/info.rb,
lib/is-module-reset/main.rb
Defined Under Namespace
Modules: Info
Class Method Summary collapse
Class Method Details
.dump(*mods) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/is-module-reset/main.rb', line 11 def dump *mods state = {} mods.each do |mod| dump_module state, mod end state.deep_dup end |
.isolate(*mods) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/is-module-reset/main.rb', line 32 def isolate *mods raise ArgumentError, 'Block is required!' unless block_given? state = dump(*mods) yield ensure undump state end |
.undump(state) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/is-module-reset/main.rb', line 19 def undump state state.each do |mod, mod_state| mod.class_variables.each { mod.remove_class_variable it } mod_state[:class_vars].each do |var, value| mod.class_variable_set var, value end mod.instance_variables.each { mod.remove_instance_variable it } mod_state[:instance_vars].each do |var, value| mod.instance_variable_set var, value end end end |