aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeb Bacon <seb.bacon@gmail.com>2011-06-13 13:11:14 +0100
committerSeb Bacon <seb.bacon@gmail.com>2011-06-13 13:11:14 +0100
commit7d98112cc8394b3b9656f9ac5ec6da02f1c08723 (patch)
tree605fb8b77a4746c8b8213e7c105563831255b2e8
parentc70f7b8e0ff11bc1ededfaa70eb1e775ef97453e (diff)
Make sure the previous locale is restored on block exit, even if the
block was left via return.
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record.rb b/vendor/plugins/globalize2/lib/globalize/active_record.rb
index 2915a5737..ce1c50d23 100644
--- a/vendor/plugins/globalize2/lib/globalize/active_record.rb
+++ b/vendor/plugins/globalize2/lib/globalize/active_record.rb
@@ -88,9 +88,12 @@ module Globalize
delegate :set_translation_table_name, :to => :translation_class
def with_locale(locale)
- previous_locale, self.locale = self.locale, locale
- result = yield
- self.locale = previous_locale
+ begin
+ previous_locale, self.locale = self.locale, locale
+ result = yield
+ ensure
+ self.locale = previous_locale
+ end
result
end