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,7 +28,7 @@ module ActsAsHavingSettings
28 class_eval <<-CODE 28 class_eval <<-CODE
29 def #{setting} 29 def #{setting}
30 val = send(self.class.settings_field)[:#{setting}] 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 end 32 end
33 def #{setting}=(value) 33 def #{setting}=(value)
34 send(self.class.settings_field)[:#{setting}] = self.class.acts_as_having_settings_type_cast(value, #{data_type.inspect}) 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 +6,7 @@ class ActsAsHavingSettingsTest &lt; Test::Unit::TestCase
6 class TestClass < Block 6 class TestClass < Block
7 settings_items :flag, :type => :boolean 7 settings_items :flag, :type => :boolean
8 settings_items :flag_disabled_by_default, :type => :boolean, :default => false 8 settings_items :flag_disabled_by_default, :type => :boolean, :default => false
  9 + settings_items :name, :type => :string, :default => N_('ENGLISH TEXT')
9 end 10 end
10 11
11 should 'store settings in a hash' do 12 should 'store settings in a hash' do
@@ -62,6 +63,11 @@ class ActsAsHavingSettingsTest &lt; Test::Unit::TestCase @@ -62,6 +63,11 @@ class ActsAsHavingSettingsTest &lt; Test::Unit::TestCase
62 assert_equal false, TestClass.new.flag_disabled_by_default 63 assert_equal false, TestClass.new.flag_disabled_by_default
63 end 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 should 'be able to specify type of atrributes (boolean)' do 71 should 'be able to specify type of atrributes (boolean)' do
66 obj = TestClass.new 72 obj = TestClass.new
67 obj.flag = 'true' 73 obj.flag = 'true'