Commit c1dfb88647e6952ffb05b45ba29da540710b45c9

Authored by Antonio Terceiro
1 parent 92389213

ActionItem862: translating default contents in settings

lib/acts_as_having_settings.rb
... ... @@ -28,7 +28,7 @@ module ActsAsHavingSettings
28 28 class_eval <<-CODE
29 29 def #{setting}
30 30 val = send(self.class.settings_field)[:#{setting}]
31   - val.nil? ? #{default} : val
  31 + val.nil? ? (#{default}.is_a?(String) ? gettext(#{default}) : #{default}) : val
32 32 end
33 33 def #{setting}=(value)
34 34 send(self.class.settings_field)[:#{setting}] = self.class.acts_as_having_settings_type_cast(value, #{data_type.inspect})
... ...
test/unit/acts_as_having_settings_test.rb
... ... @@ -6,6 +6,7 @@ class ActsAsHavingSettingsTest &lt; Test::Unit::TestCase
6 6 class TestClass < Block
7 7 settings_items :flag, :type => :boolean
8 8 settings_items :flag_disabled_by_default, :type => :boolean, :default => false
  9 + settings_items :name, :type => :string, :default => N_('ENGLISH TEXT')
9 10 end
10 11  
11 12 should 'store settings in a hash' do
... ... @@ -62,6 +63,11 @@ class ActsAsHavingSettingsTest &lt; Test::Unit::TestCase
62 63 assert_equal false, TestClass.new.flag_disabled_by_default
63 64 end
64 65  
  66 + should 'translate default values' do
  67 + TestClass.any_instance.expects(:gettext).with('ENGLISH TEXT').returns("TRANSLATED")
  68 + assert_equal 'TRANSLATED', TestClass.new.name
  69 + end
  70 +
65 71 should 'be able to specify type of atrributes (boolean)' do
66 72 obj = TestClass.new
67 73 obj.flag = 'true'
... ...