diff --git a/lib/acts_as_having_settings.rb b/lib/acts_as_having_settings.rb index de8af62..4b421f3 100644 --- a/lib/acts_as_having_settings.rb +++ b/lib/acts_as_having_settings.rb @@ -28,7 +28,7 @@ module ActsAsHavingSettings class_eval <<-CODE def #{setting} val = send(self.class.settings_field)[:#{setting}] - val.nil? ? #{default} : val + val.nil? ? (#{default}.is_a?(String) ? gettext(#{default}) : #{default}) : val end def #{setting}=(value) send(self.class.settings_field)[:#{setting}] = self.class.acts_as_having_settings_type_cast(value, #{data_type.inspect}) diff --git a/test/unit/acts_as_having_settings_test.rb b/test/unit/acts_as_having_settings_test.rb index 39c2413..696c394 100644 --- a/test/unit/acts_as_having_settings_test.rb +++ b/test/unit/acts_as_having_settings_test.rb @@ -6,6 +6,7 @@ class ActsAsHavingSettingsTest < Test::Unit::TestCase class TestClass < Block settings_items :flag, :type => :boolean settings_items :flag_disabled_by_default, :type => :boolean, :default => false + settings_items :name, :type => :string, :default => N_('ENGLISH TEXT') end should 'store settings in a hash' do @@ -62,6 +63,11 @@ class ActsAsHavingSettingsTest < Test::Unit::TestCase assert_equal false, TestClass.new.flag_disabled_by_default end + should 'translate default values' do + TestClass.any_instance.expects(:gettext).with('ENGLISH TEXT').returns("TRANSLATED") + assert_equal 'TRANSLATED', TestClass.new.name + end + should 'be able to specify type of atrributes (boolean)' do obj = TestClass.new obj.flag = 'true' -- libgit2 0.21.2