diff options
Diffstat (limited to 'activesupport/test/dependencies_test_helpers.rb')
-rw-r--r-- | activesupport/test/dependencies_test_helpers.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/activesupport/test/dependencies_test_helpers.rb b/activesupport/test/dependencies_test_helpers.rb new file mode 100644 index 0000000000..9268512a97 --- /dev/null +++ b/activesupport/test/dependencies_test_helpers.rb @@ -0,0 +1,27 @@ +module DependenciesTestHelpers + def with_loading(*from) + old_mechanism, ActiveSupport::Dependencies.mechanism = ActiveSupport::Dependencies.mechanism, :load + this_dir = File.dirname(__FILE__) + parent_dir = File.dirname(this_dir) + path_copy = $LOAD_PATH.dup + $LOAD_PATH.unshift(parent_dir) unless $LOAD_PATH.include?(parent_dir) + prior_autoload_paths = ActiveSupport::Dependencies.autoload_paths + ActiveSupport::Dependencies.autoload_paths = from.collect { |f| "#{this_dir}/#{f}" } + yield + ensure + $LOAD_PATH.replace(path_copy) + ActiveSupport::Dependencies.autoload_paths = prior_autoload_paths + ActiveSupport::Dependencies.mechanism = old_mechanism + ActiveSupport::Dependencies.explicitly_unloadable_constants = [] + end + + def with_autoloading_fixtures(&block) + with_loading 'autoloading_fixtures', &block + end + + def remove_constants(*constants) + constants.each do |constant| + Object.send(:remove_const, constant) if Object.const_defined?(constant) + end + end +end
\ No newline at end of file |