class ConstantReplacer
Public Class Methods
replace(klass_constants, &block)
click to toggle source
# File lib/rspec/isolate/constant_replacer.rb, line 3 def replace(klass_constants, &block) klass_constants.each do |klass| get_module(klass).send(:remove_const, get_class_name(klass)) get_module(klass).const_set(get_class_name(klass), block.call(klass)) end end
Private Class Methods
get_class_name(klass_constant)
click to toggle source
# File lib/rspec/isolate/constant_replacer.rb, line 20 def get_class_name(klass_constant) get_constant_components(klass_constant).last end
get_constant_components(klass_constant)
click to toggle source
# File lib/rspec/isolate/constant_replacer.rb, line 24 def get_constant_components(klass_constant) klass_constant.name.split("::") end
get_module(klass_constant)
click to toggle source
# File lib/rspec/isolate/constant_replacer.rb, line 12 def get_module(klass_constant) get_module_names(klass_constant).reduce(Object, :const_get) end
get_module_names(klass_constant)
click to toggle source
# File lib/rspec/isolate/constant_replacer.rb, line 16 def get_module_names(klass_constant) get_constant_components(klass_constant)[0...-1] end