Skip to content

Commit 45e95b9

Browse files
committed
use_language (good for around_filter)
1 parent fe387d0 commit 45e95b9

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

‎lib/gibberish/localize.rb‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ def current_language=(language)
2525
@@current_language = languages[language] ? language : nil
2626
end
2727

28+
def use_language(language)
29+
start_language = current_language
30+
self.current_language = language
31+
yield
32+
self.current_language = start_language
33+
end
34+
2835
def default_language?
2936
current_language == default_language
3037
end

‎test/gibberish_test.rb‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,21 @@
4949
Gibberish.current_language = nil
5050
Gibberish.should.be.default_language
5151
end
52+
53+
specify "should be able to switch to a certain language for the duration of a block" do
54+
Gibberish.should.be.default_language
55+
56+
string = "Welcome, friend!"
57+
string[:welcome_friend].should.equal string
58+
59+
Gibberish.use_language :es do
60+
string[:welcome_friend].should.not.equal string
61+
Gibberish.should.not.be.default_language
62+
end
63+
64+
Gibberish.should.be.default_language
65+
string[:welcome_friend].should.equal string
66+
end
5267
end
5368

5469
context "When no language is set" do

0 commit comments

Comments
 (0)