Commit cda000186107d91bd0a4ef9330b74afb8293fc7d

Authored by AntonioTerceiro
1 parent 42340c3b

ActionItem41: adding the possibility of giving a default value for settings


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1330 3f533792-8f58-4932-b0fe-aaf55b0a4547
lib/acts_as_having_settings.rb
... ... @@ -19,10 +19,14 @@ module ActsAsHavingSettings
19 19 end
20 20  
21 21 def settings_items(*names)
  22 +
  23 + options = names.last.is_a?(Hash) ? names.pop : {}
  24 + default = options[:default] ? "|| #{options[:default].inspect}" : ""
  25 +
22 26 names.each do |setting|
23 27 class_eval <<-CODE
24 28 def #{setting}
25   - send(self.class.settings_field)[:#{setting}]
  29 + send(self.class.settings_field)[:#{setting}] #{default}
26 30 end
27 31 def #{setting}=(value)
28 32 send(self.class.settings_field)[:#{setting}] = value
... ...
test/unit/acts_as_having_settings_test.rb
... ... @@ -42,4 +42,10 @@ class ActsAsHavingSettingsTest &lt; Test::Unit::TestCase
42 42 assert_equal 15, Block.find(block.id).limit
43 43 end
44 44  
  45 + should 'be able to specify default values' do
  46 + block_class = Class.new(Block)
  47 + block_class.settings_items :some_setting, :default => 10
  48 + assert_equal 10, block_class.new.some_setting
  49 + end
  50 +
45 51 end
... ...