diff --git a/lib/i18n/backend/simple.rb b/lib/i18n/backend/simple.rb index 0acc2989..1121bb51 100644 --- a/lib/i18n/backend/simple.rb +++ b/lib/i18n/backend/simple.rb @@ -68,6 +68,11 @@ def localize(locale, object, format = :default) def initialized? @initialized ||= false end + + def reload! + @initialized = false + @translations = nil + end protected diff --git a/test/simple_backend_test.rb b/test/simple_backend_test.rb index e4e4a950..4f510e4c 100644 --- a/test/simple_backend_test.rb +++ b/test/simple_backend_test.rb @@ -470,4 +470,33 @@ def test_load_translations_loads_from_different_file_formats } assert_equal expected, backend_get_translations end +end + +class I18nSimpleBackendReloadTranslationsTest < Test::Unit::TestCase + include I18nSimpleBackendTestSetup + + def setup + @backend = I18n::Backend::Simple.new + I18n.load_path = [File.dirname(__FILE__) + '/locale/en-US.yml'] + assert_nil backend_get_translations + @backend.send :init_translations + end + + def teardown + I18n.load_path = [] + end + + def test_setup + assert_not_nil backend_get_translations + end + + def test_reload_translations_unloads_translations + @backend.reload! + assert_nil backend_get_translations + end + + def test_reload_translations_uninitializes_translations + @backend.reload! + assert_equal @backend.initialized?, false + end end \ No newline at end of file